「这是我参与11月更文挑战的第21天,活动详情查看:2021最后一次更文挑战」
简介
今天给大家介绍一下,数据结构线性表的知识,为后面学习算法打下基础。
基本概念
线性表简称为表,是零个或多个元素(也称表目)的有穷序列。通常表示L=(K0,k1,...,kn-1)
(1) 第一个元素只有一个后继,最后一个元素只有一个前驱
(2) 其他元素都是即有前驱又有后继
顺序表的顺序存储
特点
(1) 逻辑上相连的元素在物理上也相邻
(2) 随机访问:通过首地址和元素序号在O(1)时间内找到指定元素
类型定义
const int Maxsize = 线性表最大长度
typedef struct{
DataType elem[MAXSIZE];
int length;
}sqlist;
复制代码
注:a) Sqlist为类型名,可换用其他写法 b) DataType是数据元素的类型,根据需要确定 c) MAXSIZE根据需要确定,如: const int MAXSIZE = 64; d) 课本上sqlist类型可在需要时增加存储空间,在这上面不可以 e) 课本上的sqlist类型定义中的listsize表示已经分配的空间大小(容纳的数据元素的个数)。当插入元素遇到L.length==L.listsize时,用realloc(L.elem,L.listsize+增量)
基本形态
- 顺序表空:条件:L.length == 0 (不允许删除操作)
- 顺序表满条件:L.length == MAXSIZE (不允许插入操作)
- 不空也不满: 0< L.length < MAXSIZE (可插入,可删除)
寄语
今天主要是给大家介绍一下,有关于线性表的知识,线性表是数据结构最基础的知识点,把线性表的知识学好,对于后面树的学习以及图的学习会起到事倍功半的效果。并且贝叶斯网络是一个有向无环图,因此线性表的学习是贝叶斯学习的基础。希望可以给大家带来大家需要的知识。