您的位置:首页 > 其它

实验二 总结线性表的几种主要存储方式

2017-10-08 19:46 537 查看
顺序表:

 顺序表用数组存储数据,数组在创建时就必须声明长度,所以顺序表是定长的,同时存储位置在物理上是相邻的。

        优点:顺序表具有随机存取结构,查找存取效率高。

        缺点:插入和删除元素时,需要移动元素,效率低。定长的数组容易造成空间浪费。造成存储空间的“碎片”。

单链表:

        单链表是用一组任意的存储单元存放线性表的元素,每个存储单元在存储数据元素的同时,还必须存储其后继元素所在的地址信息,这个地址信息称为指针。.

        单链表采用动态存储分配来存储线性表。

优点:插入和删除元素时,不需要移动元素,效率高。内存动态申请,不造成空间浪费。

        缺点:查找存取效率低。

循环链表:

把单链表中,将终端结点的指针域由空指针改为指向头结点,使整个单链表形成一个环,这种链表称为循环链表。

优点:相比单链表,循环链表的灵活性更高,从循环链表中任一结点出发,就可扫描到其他结点。

        缺点:相比单链表,循环链表中没有明显的尾端,容易造成死循环,需要格外注意循环条件。

双链表:

双链表在单链表的基础上,多了一个prior前驱指针域,存放该结点的前驱结点的地址

优点:相比单链表,双联表能更快速确定表中任一结点的前驱结点。

缺点:相比单链表,多了前驱指针域,加大了在结构上内存开销。

静态链表:

静态链表是用数组来表示单链表,用数组元素的下标来模拟单链表的指针。

优点:插入和删除元素时,不需要移动元素,效率高。

缺点:定长的数组容易造成空间浪费。造成存储空间的“碎片”。

间接寻址:

间接寻址是将数组和指针结合起来的一种方式,它将数组中存储数据元素的单元改为存储指向该元素的指针。

优点:保持了顺序表随机存取的优点,查找存取效率高。改进了插入和删除操作的时间性能。

缺点:没有解决连续存储分配带来的表长难以确定的问题

总结:

一般来说,需要频繁存取的数据建议用顺序表,需要频繁增删或数据长度变化较大的数据建议用链表。静态链接通过灵活运用数组,提高了插入和删除元素的效率,但同时降低了查找存取的效率。间接寻址通过把指针和数组结合起来,在保持了查找存取效率高的同时,改进了插入和删除操作的时间性能,但又加大了结构性的开销。

        每种存储方式都有其优点和缺点 ,我们需要根据数据的实际情况,选择最恰当的存储方式。

        在实验二中,由于处理的数据量比较少,除了知道几种存储方式的操作有差异外,并没有直观地感受到这几种存储方式的优缺点。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: