数据结构:线性表(1)

「这是我参与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 (可插入,可删除)

寄语

今天主要是给大家介绍一下,有关于线性表的知识,线性表是数据结构最基础的知识点,把线性表的知识学好,对于后面树的学习以及图的学习会起到事倍功半的效果。并且贝叶斯网络是一个有向无环图,因此线性表的学习是贝叶斯学习的基础。希望可以给大家带来大家需要的知识。

猜你喜欢

转载自juejin.im/post/7033412401844191245