数据结构——线性表

线性表是数据结构中的一种存储结构,可以细分为顺序表,链表,栈和队列。线性表并不是一种具体的存储结构,它包含顺序存储结构和链式存储结构,是顺序表和链表的统称。

顺序表

顺序表的底层实现是借助于数组,但是顺序表示不同于数组的,数组是编程语言中的基本数据类型,而顺序表示数据结构中的一种存储方式。使用顺序表存储数据,需要提前申请一定的存储空间,这块存储空间的物理地址是连续。如图1所示。

                                                      

链表 

使用链表存储数据时,是随时用随时申请存储空间的,所以数据的存储位置是相互分离的,换句话说就是数据的存储位置是随机的。为了给各个数据建立“依次排列”的关系,链表给各个数据块增设一个指针,每个数据块的指针都指向下一个数据块(最后 一个数据块的指针指向NULL)

                                                           

栈和队列

栈和队列隶属于线性表,是特殊的线性表,因为它们对线性表中元素的进出做了明确的要求。栈中的元素只能从线性表的一端进出(另一端封死),且要遵循“先入后出”的原则,即先进栈的元素后出栈。  

                                                     

栈结构如图 3 所示,像一个木桶,栈中含有 3 个元素,分别是 A、B 和 C,从在栈中的状态可以看出 A 最先进的栈,然后 B 进栈,最后 C 进栈。根据“先进后出”的原则,3 个元素出栈的顺序应该是:C 最先出栈,然后 B 出栈,最后才是 A 出栈。队列中的元素只能从线性表的一端进,从另一端出,且要遵循“先入先出”的特点,即先进队列的元素也要先出队列。

                                          

队列结构如图 4 所示,队列中有 3 个元素,分别是 A、B 和 C,从在队列中的状态可以看出是 A 先进队列,然后 B 进,最后 C 进。根据“先进先出”的原则,3 个元素出队列的顺序应该是 A 最先出队列,然后 B 出,最后 C 出。

树存储结构

树存储结构适合存储具有“一对多”关系的数据。      

                                                                 

图存储结构             

图存储结构适合存储具有“多对多”关系的数据。

                                                      

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值