单链表的尾插法相对于头插法我觉得是比较简单的
首先创建一个头结点,对里面进行输入,然后再创建一个新的结点,对里面进行输入,输入完后,把头结点的next指向这个新的结点,新的结点的next指向NULL
下图为结构图
下面为完整代码
#include <stdio.h>
#include <stdlib.h>
struct node
{
char data;
node *next;
}link;
node *creat(node *l)
{
int choose;
int i=1;
char ch;
node *head;
l=(node *)malloc(sizeof(node));
printf("请输入第%d个数据:",i);
scanf("%c",&ch);
getchar();
l->data=ch;
head=l;
node *p;
p=l;
i++;
while(1)
{
printf("请输入第%d个数据:",i);
scanf("%c",&ch);
l=(node *)malloc(sizeof(node));
l->data=ch;
p->next=l;
p=l;
printf("是否结束输入:1,结束2,继续:");
scanf("%d",&choose);
getchar();
if(choose==1) break;
i++;
}
l->next=NULL;
return head;
}
int main()
{
node *l;
l=&link;
node *head;
head=creat(l);
while(head!=NULL)
{
printf("%c",head->data);
head=head->next;
}
}
运行测试
我们输入abcd四个数据