数据结构——线性表

1.线性表

线性表(linear list)是n个类型相同元素的有限序列。也就是说线性表具有的性质是:

1)每个元素数据类型相同;2)元素是有限个;3)有顺序之分

线性表根据存储方式可以分为:

线性表可以完成对表中数据元素的访问、添加、删除等操作,表的长度也可以随着数据元素的添加和删除而变化。 

1.1 顺序存储

是用一组地址连续的存储单元一次存储的线性表的数据元素。以数据存储的地址相邻来表示数据元素之间的顺序关系。只要确定了线表的其实地址,任何一个元素都可以随机存取,是一种随机的存储结构。这个看起来有点抽象,其实就是定了第一个元素的位置,后面元素之间包括和前面元素之间的逻辑关系不变,存储并不是挨在一起的,可以是随机放的,但是如果把元素单拎出来,之前的逻辑关系没有变化的。

这种存储方式有缺点,如果需要插入或者增加元素,要将后面的所有元素都移动,要更改很多的元素位置。我理解为顺移。 

 1.2链式存储

 链表的数据结构是其中的各个对象按照线性顺序排列,这个顺序是由各个对象的指针决定。链表可以是单链接也就可以是双链接,可以是循环也可以是非循环的。

1.2.1单链表

当链表是单链接的时候就是单链表,它由数据和指针构成。这样的存储单元称为节点

链表的第一个结点和最后一个结点,分别称为链表的首结点和尾结点。尾结点的特征是其next 引用为空(null)。链表中每个结点的next 引用都相当于一个指针,指向另一个结点,借助这些next 引用,我们可以从链表的首结点移动到尾结点。要注意的是单链表只能通过前驱结点找到后续结点,而无法从后续结点找到前驱结点。

1.2.2双链表

双链表比单链表多一个前驱指针

单链表的单向的,双链表是双向的,之前再单链表上的注意事项这里就不存在了。单链表只有next,而双链表不仅有next,还有prev。

1.2.3循环链表

循环链表是一个环,也分为循环单链表和循环双链表。循环单链表是尾和头相连,next指向头部。循环双链表中,尾部next指向头部,头部的prev指向尾部。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值