C语言数据结构(单链表)

单链表的整表创建
——对于顺序存储结构的线性表的整表创建,我们可以用数组的初始化来直观理解。
——而单链表和顺序存储结构就不一样了,它不像顺序存储结构这么集中,他的数据可以是分散在内存各个角落的,他的增长也是动态的。
——对于每个单链表来说,他所占用空间的大小和位置是不需要预先分配划定的,可以根据系统的情况和实际的需求即时生成。
——创建单链表的过程是一个动态生成链表的过程,从“空表”的初始状态起,依次创立各元素结点并逐个插入链表。

单链表创建的算法思路如下:
——声明一个结点P和计数器变量i;
——初始化一个空链表L;
——让L的头结点的指针指向NULL,即建立一个带头结点的单链表;
——循环实现后继结点的赋值和插入。

头插法建立单链表
——头插法从一个空表开始,生成新结点,读取数据存放到新节点的数据域中,然后将新结点插入到当前链表的表头上,直到结束为止。

简单来说,就是把新加进的元素放在表头后的第一个位置;
先让新结点的next指向头结点之后;
然后让表头的next指向新结点。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上面便是用头插法建立链表的代码!!

尾插法建立单链表
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上面便是用尾插法建立链表的代码!!

单链表的整表删除:
单链表整表删除的思路如下:
——声明结点p和q;
——将第一个结点赋值给p,下一个结点赋值给q;
——循环执行释放p和将q赋值给p的操作。
代码如下:
在这里插入图片描述
单链表结构与顺序存储结构优缺点
存储分配方式、时间性能、空间性能三方面作对比。
存储分配方式:
——顺序存储结构用一段连续的存储单元依次存储线性表的数据元素。
——单链表采用链式存储结构,用一组任意的存储单元存放线性表的元素。
时间性能:
——查找
1.顺序存储结构O(1)
2.单链表O(n)
——插入和删除
1.顺序存储结构需要平均移动表长一半的元素,时间为O(n)
2.单链表在九三出某位置的指针后,插入和删除时间仅为O(1)
空间性能:
——顺序存储结构需要预分配存储空间,分大了,容易造成空间浪费,分小了,容易发生溢出。
——单链表不需要分配存储空间,只要有就可以分配,元素个数也不受限制。
在这里插入图片描述
在这里插入图片描述
明天开始学习静态链表!

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值