顺序表基础知识原创
有序序列
。
- 线性表汇中元素个数n,称为线性表的长度。当n=0是,为空表。
- 表头元素,
是唯一的没有“直接前驱”数据元素;表尾元素, 是唯一一个没有"直接后继"的数据元素。 是 的直接 前驱
,是 的直接 后继
。
# 线性表特点
- 元素个数是有限的
- 表中元素具有逻辑上的顺序性,表中元素有其先后次序
- 元素的数据类型相同,每个元素都是单个元素
- 每个元素占有大小相同的存储空间
- 表中元素具有抽象性,即仅讨论元素间的逻辑关系,而不考虑元素究竟表示什么内容
警告
线性表是一种逻辑结构,表示元素之间一对一的相邻关系。
顺序表、链表是指存储结构。
两者属于不同层面的概念。
提示
用一组地址连续的存储单元一次存储线性表中的数据元素,从而使逻辑上相邻的两个元素在物理位置上也相邻。
第一个元素存储在线性表的起始位置,第i个元素的存储位置后面紧接着存储第i+1个元素,称i为元素位序
。
位序是从1
开始,而数值下标从0
开始。
# 顺序表(顺序存储)
# 顺序表 VS 链表
顺序表 | 链表 | |
---|---|---|
逻辑结构 | 都属于线性表,都是线性结构 | |
存储(物理)结构 | 顺序存储 | 链式存储 |
创建 | 静态分配/动态分配 | 头指针/无头指针 |
销毁 | 静态分配系统自动回收;动态分配需要手动free | 遍历各结点,依次free |
增删 | O(n),需要移动大量元素,若数据元素很大,则移动时间代价高 | O(n),依次查找各结点,找到相应结点,然后修改指针,查找耗时相对低 |
按位查找 | O(1) | O(n) |
按值查找 | 表内元素无序时O(n);有序时根据相关算法可O(log2n) | O(n) |
使用场景 | 表长可预估、查询(搜索)操作较多 | 表长难以预估、经常增删元素 |
上次更新: 2022/06/30, 14:46:07