数据结构复习之线性表
2015-07-17 12:20
274 查看
线性表基本概念
线性表是零个或多个具有相同数据类型的数据元素的有序序列。
线性表的存储结构
1.顺序存储结构
存储方式:顺序储存结构用一段连续的存储单元一次存储线性表的的数据元素(通常由数组实现)
适用情况:当线性表频繁查找,很少进行插入和删除操作的情况
优缺点:
优点: 无须为表示元素之间的逻辑关系而增加额外的存储空间
可以快速地存取表中任一位置的元素
缺点: 插入和删除元素操作需要移动大量元素
当线性表长度变化较大时,难以确定存储空间的容量
顺序存储结构需要预分配存储空间,分大了易造成浪费,分小了,易发生向上溢出
造成存储的碎片化
2.链式存储结构
存储方式:单链表采用链式存储结构,用一组任意的存储单元存放线性表元素。
适用情况:当线性表频繁插入和删除的情况,
还有是线性表元素个数变化较大或根本不知道有多大的情况,这样无需考虑存储空间问题。
优缺点:
优点: 单链表在找出某位置的指针后,插入和删除时间仅为O(1)
单链表不需要分配存储空间,只要有就可以分配,元素个数不受限制。
缺点: 查找时需要遍历链表,平均移动表长的一般元素,时间为O(n),效率低。
区分头指针和头结点。
链式存储结构顺序表不同类型:
单链表
静态链表 —— 用数组描述的链表,不使用指针
循环链表 —— 将单链表中最后一个结点的指针域由空指针改为指向头结点,形成一个环路,头尾相接的单链表。
双向链表 —— 在单链表的每个结点再增加一个指向其前驱结点的指针域(在插入、删除时的修改两个指针变量)
线性表是零个或多个具有相同数据类型的数据元素的有序序列。
线性表的存储结构
1.顺序存储结构
存储方式:顺序储存结构用一段连续的存储单元一次存储线性表的的数据元素(通常由数组实现)
适用情况:当线性表频繁查找,很少进行插入和删除操作的情况
优缺点:
优点: 无须为表示元素之间的逻辑关系而增加额外的存储空间
可以快速地存取表中任一位置的元素
缺点: 插入和删除元素操作需要移动大量元素
当线性表长度变化较大时,难以确定存储空间的容量
顺序存储结构需要预分配存储空间,分大了易造成浪费,分小了,易发生向上溢出
造成存储的碎片化
2.链式存储结构
存储方式:单链表采用链式存储结构,用一组任意的存储单元存放线性表元素。
适用情况:当线性表频繁插入和删除的情况,
还有是线性表元素个数变化较大或根本不知道有多大的情况,这样无需考虑存储空间问题。
优缺点:
优点: 单链表在找出某位置的指针后,插入和删除时间仅为O(1)
单链表不需要分配存储空间,只要有就可以分配,元素个数不受限制。
缺点: 查找时需要遍历链表,平均移动表长的一般元素,时间为O(n),效率低。
区分头指针和头结点。
链式存储结构顺序表不同类型:
单链表
静态链表 —— 用数组描述的链表,不使用指针
循环链表 —— 将单链表中最后一个结点的指针域由空指针改为指向头结点,形成一个环路,头尾相接的单链表。
双向链表 —— 在单链表的每个结点再增加一个指向其前驱结点的指针域(在插入、删除时的修改两个指针变量)
相关文章推荐
- UVA11988 Broken Keyboard (a.k.a. Beiju Text)
- UVA 11136 Hoax or what 【multiset】
- 基本数据结构之Stack类(一)
- UVALive 4487 Exclusive-OR
- PAT 数据结构 06-图8. 关键活动(30)
- Java LinkedList特有方法程序小解 && 使用LinkedList 模拟一个堆栈或者队列数据结构。
- 数据结构进制转换源代码
- 数据结构赫夫曼树源程序
- 数据结构二叉树源程序
- 数据结构迷宫源程序
- 数据结构图的深度遍历和广度遍历源程序
- 数据结构电话号码本源程序(链表)
- 数据结构电话号码本源代码(顺序表)
- 详解《数据结构题集(C语言版)》算法设计题(01-16)
- 数据结构基础温故-4.树与二叉树(下)
- MD中bitmap源代码分析--数据结构
- 跟我学数据结构之算法初步概念
- 权限管理数据结构设计
- PAT 数据结构 06-图7. How Long Does It Take (25) 拓扑排序 最早开始时间
- 算法导论 第十四章:区间树