首页 > 其他 > 详细

单向链表的建立(2)

时间:2015-10-11 21:20:15      阅读:242      评论:0      收藏:0      [点我收藏+]

链表的建立可以使用尾插法,也可以使用头插法,头插法就是从头节点开始,向前扩展节点,最后生成带头节点的单向链表,使得内容与输入相反。

链表的定义与(1)中相同,这里只介绍链表的建立函数。

 1 LNode *create(int n)
 2 {
 3     int m;
 4     LNode *head=(LNode *)malloc(sizeof(LNode));
 5     LNode *tail=(LNode *)malloc(sizeof(LNode));
 6     LNode *p;
 7     head->next=NULL;
 8     for(int i=0;i<n;i++)
 9     {
10         p=(LNode *)malloc(sizeof(LNode));
11         scanf("%d",&m);
12         p->data = m;
13         p->next=head->next;
14         head->next=p;
15     }
16     return head;
17 }

开始一定要为头节点申请内存空间,并赋值他的后继节点。

例如,我们输入1,2,3,4,5

输入1时

12行:p节点赋值1

13行:p节点指向head节点的后继(此时为空),即p指向了空

14行:head指向p

这样形成了,head(空)指向p,p指向空的链表

输入2时

12行:p节点赋值2

13行:p节点(2)指向(1)节点

14行:head节点指向p节点

 

这样每次保证head节点指向最新插入的节点,形成了倒序,head中没有数据。

单向链表的建立(2)

原文:http://www.cnblogs.com/wktwj/p/4869957.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!