数据结构2

文章介绍了线性表的概念,包括顺序表和链表两种常见形式。顺序表支持随机访问,适用于需要快速定位的数据操作,但面临扩容和数据挪动的问题。链表解决了顺序表的空间动态管理和插入删除效率问题,但不支持随机访问且额外需要存储指针。单链表作为链表的一种,其结构和操作特性也在文中提及。
摘要由CSDN通过智能技术生成

顺序表和链表:
1:线性表
线性表是n个具有相同特性的数据元素的有限序列,常见的线性表:顺序表,链表,栈,队列,字符串
线性表在逻辑是上也是线性结构,也就是说连续一条直线,线性表在物理上存储时,通常以数组和链式结构的形式存储

2:顺序表:
1:支持随机访问,有些算法需要结构支持随机访问,比如二分查找,比如优化快排等等
缺陷:
1:空间不够了,需要扩容,扩容是有消耗的
2:头部或者中间位置的插入删除,需要挪动,挪动数据也是有消耗的。
3:避免频繁扩容,一次一般都是按倍数去扩(2倍),可能存在一定空间浪费。

3:链表:
1:链表可以说是因以下为顺序表的缺陷而改良出来的:
2:链表一般以结构体为主体,内部带一个指针指向下一个结构体,以malloc开辟空间储存
3:按需申请空间,不用了就释放空间(更合理的使用了空间)
4:头部中间插入不需要删除数据,不需要挪动数据,不存在空间浪费。
缺点:
1:每一个数据都需要存一个指针去链接后面数据节点。
2:不支持随机访问(用下标直接访问第n个)
3:很多oj题都是考查单链表,单链表更多的是去更复杂度数据结构的子结构,哈希桶

以下是单链表的简单创建方式:

 

 这样一来,一个非常简单的单向链表就写出来了

它的逻辑结构体类似于这样:

 总结下来每一个链表单元就是一个结构体,但每个结构体都带有一个指针指向下一个链表单元,

然而这种单向指向连续的就叫单链表,关于链表的有点以上有讲

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值