【ShawnZhang】带你看数据结构——第三课:线性表链式结构(单链表)

【比较】

顺序结构:在内存开辟连续的空间(预分配,一般会浪费)来存储,相邻的物理存储地址就是数据之间的逻辑关系

链式结构:在一个存储单元,除了存储数据本身,还要存储下一个数据的物理地址,所以链式的存储在内存上可以是断断续续的


创建头结点知识点:

L=(Link)malloc(sizeof(JD));        ||   L=(LinkList *)malloc(sizeof(JD));

解释:malloc是开辟一个链式存储单元,分配连续可用的字节空间,一般作为头结点,这样L->next=NULL就算是一个空链表创建完成

   Link为指针类型,

   JD是一个结构体对象名称,需要计算大小,来创建头结点,既创建L

           malloc属于<stdlib.h>,所以头文件需要包含


在完成链式表的操作时,一般需要考虑指针是否指向NULL

通过p=p->next来遍历数据

free(q);可以用来释放空链表中的某个结点,但一定要控制好头结点,尾结点,不能把它们free掉,否则无法进行其他操作

需要通过灵活使用指针,指针内容并非此次重点,如有疑问,可以留言


优点:平均插删移动节点复杂度为o(1)——>就是说移动节点比顺序表少很多,另外它动态分配空间,不需要预分配

缺点:开辟额外的空间存储地址(逻辑关系),并且存取不方便(有的时候会出现p->next重复好几次,有的时候查p前面的元素,非常麻烦)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值