`尾插法建立单链表:每次将新生成的结点插入到链表后面,使其成为新的表尾结点
编写一个函数,将键盘输入的整数序列依次存入初始为空的单链表中,函数返回新建单链表第一个结点地址
【分析】建立单链表head,可以从空表开始,依次将新生成的结点插入到链表中,为统一处理,我们将每次将新生成的结点插入到链表后面,使其成为新的表尾结点,我们把这种方式称为尾插法建立单链表。为操作方便,我们可以增设一个表尾指针tail,时刻指向单链表的表尾结点。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40#include <stdio.h> #include <stdlib.h> struct node { int data; struct node *next; }; typedef struct node linknode; typedef linknode *linklist; linklist creatLink() { linklist head,tail,q; int x; head=tail=NULL;//初始化链表 printf("请输入整数序列,以空格分隔,以0做结束:n"); scanf("%d",&x); while("x!=0") { q=(linklist)malloc(sizeof(linknode));//动态申请内存空间,生成新结点 q->data=x; if(head==NULL)//原链表为空 head=tail=q; else//原链表不为空 { tail->next=q; tail=q; } scanf("%d",&x); } if(tail!=NULL)tail->next=NULL;//置链表结束标志 return head; } int main() { linklist head; head=creatLink(); return 0; }
单链表的遍历(输出)
复制代码
1
2
3
4
5
6
7
8
9
10
11void print(linklist head) { linklist p=head; printf("List:n"); while(p!=NULL) { printf("%5d",p->data); } printf("n"); }
复制代码
1
2
3
4
最后
以上就是漂亮巨人最近收集整理的关于尾插法建立单链表的全部内容,更多相关尾插法建立单链表内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复