用尾插法创建动态链表
C语言中创建链表需要用到结构体,所以在此之前我们先定义一个结构体。
struct test
{int data;struct test *next;
};
尾插法的原理就是让原本链表的next指向新创建的数据,所以我们需要写一个whlie循环,保证每次都能到达“尾巴”,让数据可以准确的在尾部插入。
while(p->next!=NULL)
{p=p->next;
}
p->next=new;
总体代码如下
#include
#include struct test
{int data;struct test *next;
};void printfLink(struct test *head)
{struct test *p=head;while(p!=NULL){printf("%d",p->data);p=p->next;}putchar('\n');
}struct test *createLink(struct test *head)
{struct test *new=NULL;while(1){new=(struct test *)malloc(sizeof(struct test));printf("请输入链表数据:");scanf("%d",&new->data);if(new->data==0){printf("退出链表创建\n");return head;}if(head==NULL){head=new;}else{struct test *p=head;while(p->next!=NULL){p=p->next;}p->next=new;}}return head;}int main()
{struct test *head=NULL;head=createLink(head);printfLink(head);return 0;
}