赞
踩
顺序表:
顺序表用数组存储数据,数组在创建时就必须声明长度,所以顺序表是定长的,同时存储位置在物理上是相邻的。
优点:顺序表具有随机存取结构,查找存取效率高。
缺点:插入和删除元素时,需要移动元素,效率低。定长的数组容易造成空间浪费。造成存储空间的“碎片”。
单链表:
单链表是用一组任意的存储单元存放线性表的元素,每个存储单元在存储数据元素的同时,还必须存储其后继元素所在的地址信息,这个地址信息称为指针。.
单链表采用动态存储分配来存储线性表。
优点:插入和删除元素时,不需要移动元素,效率高。内存动态申请,不造成空间浪费。
缺点:查找存取效率低。
循环链表:
把单链表中,将终端结点的指针域由空指针改为指向头结点,使整个单链表形成一个环,这种链表称为循环链表。
优点:相比单链表,循环链表的灵活性更高,从循环链表中任一结点出发,就可扫描到其他结点。
缺点:相比单链表,循环链表中没有明显的尾端,容易造成死循环,需要格外注意循环条件。
双链表:
双链表在单链表的基础上,多了一个prior前驱指针域,存放该结点的前驱结点的地址
优点:相比单链表,双联表能更快速确定表中任一结点的前驱结点。
缺点:相比单链表,多了前驱指针域,加大了在结构上内存开销。
静态链表:
静态链表是用数组来表示单链表,用数组元素的下标来模拟单链表的指针。
优点:插入和删除元素时,不需要移动元素,效率高。
缺点:定长的数组容易造成空间浪费。造成存储空间的“碎片”。
间接寻址:
间接寻址是将数组和指针结合起来的一种方式,它将数组中存储数据元素的单元改为存储指向该元素的指针。
优点:保持了顺序表随机存取的优点,查找存取效率高。改进了插入和删除操作的时间性能。
缺点:没有解决连续存储分配带来的表长难以确定的问题
总结:
一般来说,需要频繁存取的数据建议用顺序表,需要频繁增删或数据长度变化较大的数据建议用链表。静态链接通过灵活运用数组,提高了插入和删除元素的效率,但同时降低了查找存取的效率。间接寻址通过把指针和数组结合起来,在保持了查找存取效率高的同时,改进了插入和删除操作的时间性能,但又加大了结构性的开销。
每种存储方式都有其优点和缺点 ,我们需要根据数据的实际情况,选择最恰当的存储方式。
在实验二中,由于处理的数据量比较少,除了知道几种存储方式的操作有差异外,并没有直观地感受到这几种存储方式的优缺点。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。