赞
踩
线性表分为顺序表和链表,链表又分为单链表,双向链表和循环链表。对于链表的结构又分为带头链表和不带头链表。
1、定义:
将表中元素一个接一个的存入一组连续的存储单元中,这种存储结构是顺序结构。采用顺序存储结构的线性表简称为“ 顺序表”。
2、特点:
1)存储空间连续,即允许元素的随机访问。
2)长度固定,必须在分配内存之前确定数组的长度。
3、优点:
1)便于随机访问。
2)cpu缓存利用率高。
3)顺序表的内存空间连续。
4)尾插、尾删效率较高,时间复杂度是O(1)。
5)支持随机访问,可以高效的按下标进行操作,时间复杂度是O(1)。
4、缺点:
1)不便于插入删除等操作,因为插入删除一个元素需要移动其后的所有元素,因此效率较低,时间复杂度为O(N)。但是在末尾插入或删除数据比较方便。
2)顺序表长度固定,有时需要扩容。
5、适用情况:一般尾插,尾删多的用顺序表和需要大量访问元素的 而少量增添/删除元素的程序。
1、链表分类:
1)单链表是只包含指向下一个节点的指针,只能单向遍历。
2)双链表即包含指向下一个节点的指针,也包含指向前一个节点的指针,因此可以双向遍历。
3)循环单链表则是将尾节点与首节点链接起来,形成了一个环状结构。
2、特点:
1)长度不固定,可以随意增删改。
2)存储空间不连续,数据元素之间靠指针联系。
3)不支持随机查找。
4)在特定的数据元素之后插入或删除元素,不涉及到其他元素的移动。
3、优点:
1)链表的内存空间不连续。
2)如果知道要处理节点的前一个位置,则进行插入和删除的复杂度为O(1)。
3)如果不知道要处理节点的前一个位置,则进行插入和删除的复杂度为O(N)。
4)头插、头删的效率高,时间复杂度是O(1)。
5)没有空间限制,不会溢出,可以存储很多元素。
4、缺点:
链表不支持随机访问,查找元素效率低,需要遍历节点,时间复杂度是O(n)。
5、适用情况:
适用于需要进行大量增添/删除元素操作 而对访问元素无要求的程序。
1、当线性表的长度变化不大、易于确定其大小时,采用顺序表作为存储结构。
2、若线性表主要操作是查找。很少进行插入或删除操作时,采用顺序表作为存储结构。
3、对于频繁进行插入和删除的线性表,则应该使用链表作为存储结构。
上一章:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。