数据结构(三)线性表
2017-09-19 15:57
295 查看
未完待续
线性表分为顺序存储和链式存储结构。
线性表的顺序存储:用一段地址连续的存储单元依次存储线性表的数据元素。
线性表的长度(线性表中数据元素的个数)应小于等于数组长度(放线性表的存储空间的长度)。
顺序存储结构的插入与删除。
线性表顺序存储结构的优缺点:
优点:
- 无须为表示表中元素之间的逻辑关系而增加额外的存储空间。
- 可以快速地存取表中任一位置的元素。
缺点:
- 插入和删除操作需要移动大量元素。
- 当线性表长度变化较大时,难以确定存储空间的容量。
- 造成存储空间的“碎片”。
线性表的链式存储:用一组任意的存储单元存储线性表的数据元素,这组存储单元可以是连续的,也可以是不连续的。
单链表
静态链表
循环链表
双向链表
这里需要区分的是头指针和头结点之间的关系:
头指针是指向第一个结点的指针(当有头结点时指向头结点),且头指针不为空,是构成一个链表的必要元素。
头结点是为了方便操作而设立的,放在第一个元素结点之前,它的数据域没有意义,对于一个链表来说它不是一定要具备的。
顺序储存结构和单链表结构的对比:
- 存储分配方式不同:顺序存储结构要求在一个连续的存储单元中,单链表可以在任意单元内。
- 时间性能的差异:
1)查找(顺序存储结构**O(1),单链表**O(n))
2)插入和删除(**顺序存储结构**O(n),单链表O(1))
- 空间性能:顺序存储结构容易上溢,单链表不受限制。
静态链表
假设地址从0开始,一直到999,一共一千个地址。
默认规则:下标为0的单元存储cur第一个空闲单元,最后一个单元存储第一个已经存储的坐标。
初始化:下表为i的地址单元cur为i+1,最后一个为0。
插入:找到第一个空闲地址,把当前第二个空闲地址赋值到“下标为0”的单元,并赋值到第一个空闲地址中。
删除:把要删除的单元储存cur存为当前第一个空闲坐标,将第一个存储单位修改为要删除的单位储存。
循环列表
双向链表
线性表分为顺序存储和链式存储结构。
线性表的顺序存储:用一段地址连续的存储单元依次存储线性表的数据元素。
线性表的长度(线性表中数据元素的个数)应小于等于数组长度(放线性表的存储空间的长度)。
顺序存储结构的插入与删除。
线性表顺序存储结构的优缺点:
优点:
- 无须为表示表中元素之间的逻辑关系而增加额外的存储空间。
- 可以快速地存取表中任一位置的元素。
缺点:
- 插入和删除操作需要移动大量元素。
- 当线性表长度变化较大时,难以确定存储空间的容量。
- 造成存储空间的“碎片”。
线性表的链式存储:用一组任意的存储单元存储线性表的数据元素,这组存储单元可以是连续的,也可以是不连续的。
单链表
静态链表
循环链表
双向链表
这里需要区分的是头指针和头结点之间的关系:
头指针是指向第一个结点的指针(当有头结点时指向头结点),且头指针不为空,是构成一个链表的必要元素。
头结点是为了方便操作而设立的,放在第一个元素结点之前,它的数据域没有意义,对于一个链表来说它不是一定要具备的。
顺序储存结构和单链表结构的对比:
- 存储分配方式不同:顺序存储结构要求在一个连续的存储单元中,单链表可以在任意单元内。
- 时间性能的差异:
1)查找(顺序存储结构**O(1),单链表**O(n))
2)插入和删除(**顺序存储结构**O(n),单链表O(1))
- 空间性能:顺序存储结构容易上溢,单链表不受限制。
静态链表
假设地址从0开始,一直到999,一共一千个地址。
默认规则:下标为0的单元存储cur第一个空闲单元,最后一个单元存储第一个已经存储的坐标。
初始化:下表为i的地址单元cur为i+1,最后一个为0。
插入:找到第一个空闲地址,把当前第二个空闲地址赋值到“下标为0”的单元,并赋值到第一个空闲地址中。
删除:把要删除的单元储存cur存为当前第一个空闲坐标,将第一个存储单位修改为要删除的单位储存。
循环列表
双向链表
相关文章推荐
- 数据结构实战java实现线性表
- 应用数据结构(一)线性表节点的插入和删除算法
- 学习数据结构 -> 线性表 -> 线性表的介绍
- 数据结构(4)-线性表(循环链表)
- 数据结构-线性表-顺序存储
- 《数据结构与STL-第二章 线性表》读书笔记
- 数据结构(第2章: 线性表)
- [数据结构]第二章--线性表(读书笔记2)
- 数据结构 第二章 线性表
- 《数据结构》第2章 线性表 知识点总结导图 物联1131-01
- 数据结构 第二章 线性表 英语成绩表的单链表实现
- [数据结构]线性表(一)
- 数据结构--线性表
- 数据结构-线性表
- 数据结构-线性表-队列
- [置顶] 数据结构——线性表链式存储
- 数据结构之 线性表---单链表操作A (删除链表中的指定元素)
- 1数据结构概述及线性表
- 数据结构链表习题2.27,假设以两个元素依值递增有序排列的线性表A和B分别表示两个集合,现要求另辟空间构成一个顺序链表
- 数据结构线性表之顺序表实现