码迷,mamicode.com
首页 > 其他好文 > 详细

单链表的链式存储的两种插入方式

时间:2016-05-30 08:47:47      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:

/* 头插法建立单链表示例 */

void CreateListHead(LinkList *L, int n)
{
LinkList p;
int i;

srand(time(0)); // 初始化随机数种子

*L = (LinkList)malloc(sizeof(Node));
(*L)->next = NULL;

for( i=0; i < n; i++ )
{
p = (LinkList)malloc(sizeof(Node)); // 生成新结点
p->data = rand()%100+1;
p->next = (*L)->next;
(*L)->next = p;
}
}

/* 尾插法建立单链表演示 */

void CreateListTail(LinkList *L, int n)
{
LinkList p, r;
int i;

srand(time(0));
*L = (LinkList)malloc(sizeof(Node));
r = *L;

for( i=0; i < n; i++ )
{
p = (Node *)malloc(sizeof(Node));
p->data = rand()%100+1;
r->next = p;
r = p; // 备注:初学者可能很难理解这句,重点解释。
}

r->next = NULL;
}

最后两句其实就是多增加了一个Node数据类型的变量,用它不停指向最后一个节点。然后在下一次循环中r又帮忙把最后一个节点的Next指针指向新的节点p

单链表的链式存储的两种插入方式

标签:

原文地址:http://www.cnblogs.com/sengling/p/5541048.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!