线性表的简单总结

  线性表的顺序存储结构的特点是逻辑关系上相邻的两个元素在物理位置上也相邻,优点是可以随即存取表中任一元素(其存储位置可用一个简单直观的公式表示),缺点是在作插入或删除操作时需移动大量元素。

 线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素,一次没有顺序存储结构所具有的弱点,但失去了顺序表可随机存取的优点。

 静态链表:用一维数组来描述线性链表。

struct{



elemtype data;



int cur;}

用游标cur代替指针节点在数组中的相对位置。数组的第零个分量可看成头结点,其指针与指示链表的第一个节点,数据域可存储链表长度。在作线性表的插入和删除操作时不需移动元素,只需修改指针。但是在经过删除操作后,有些空间腾空了。为了辨明数组中哪些分量未被使用,解决的办法是将所有未被使用过以及被删除的分量有游标链成一个备用的链表,每当进行插入时便可用备用链表上取得第一个节点作为待插入的新结点,反之,在删除时将从链表中删除下来的结点链接到备用链表上。可采用这种办法:数组的头两个分量作为备用链表和数据链表的头结点。

 循环链表:表中最后一个结点的指针域指向头结点,整个链表形成一个环。循环条件是:p->next是否等于头指针(同时设了头指针和尾指针)。若将两个链表合并成一个表时,可简化操作,仅需将一个表的表尾和另一个表的表头相接。

 双向链表:单向链表结点中只有一个指示直接后继的指针域,只能从某个结点出发顺指针往后寻查其他结点。双向链表克服了这个缺点。其结点中有两个指针域,一个指向直接后继,另一个指向直接前继。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值