数据结构-线性表
来源:互联网 发布:智慧农业大数据平台 编辑:程序博客网 时间:2024/06/15 15:00
一、线性表的定义
线性表(List):零个或多个数据元素的有序组合。
- 线性表是一个序列。
- 线性表强调是有限的。
- 数据元素类型相同。
线性表的数学定义:若将线性表记为(
- 线性表元素的个数(n >= 0)定义为线性表的长度,当n = 0 时,称为空表。
- i为数据元素
ai 在线性表中的位序。 - 在复杂的线性表中,一个数据元素可以由若干个数据项组成。
线性表的抽象数据类型
- 创建和初始化线性表。
- 线性表重置为空表。
- 按位序得到数据元素。
- 查找某个元素是否存在。
- 获得数据表长度。
- 插入数据和移除数据。
线性表的抽象数据类型定义如下:
ADT 线性表(List)Data 线性表的数据对象集合为{a1, a2, ......, an},每个元素的类型均为DataType。其中,除第一个元素a外,每一个元素有且只有一个直接前驱元素,除了最后一个元素a外,每一个元素有且只有一个直接后继元素。操作元素之间的关系是一对一的关系。Operation InitList(*L):初始化操作,建立一个空的线性表L。 ListEmpty(L):若线性表为空,返回true,否则返回false。 ClearList(*L):将线性表清空。 GetElem(L, i, *e):将线性表L中的第i个位置元素返回给e。 LocateElem(L, e):在线性表L中查找与给定e相等的元素,如果查找成功,返回该元素在表中序号表示成功;否则,返回0表示失败。 ListInsert(*L, i, e):将线性表L中的第i个位置插入新元素e。 ListInsert(*L, i, *e):删除线性表L中第i个位置元素,并用e返回其值。 ListLength(L):返回线性表L的元素个数。endADT
线性表的顺序存储结构
一、线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。
- 线性表的每个数据元素的类型都相同,可以使用C语言的一维数组来实现顺序存储结构,即把第一个数据元素存储到数组下标为0的位置中,接着把线性表相邻的元素存储在数组中相邻的位置。
- 线性表的顺序存储的结构代码。
#define MAXSIZE 20 /*存储空间初始分配量*/typedef int ElemType; /*ElemType类型根据实际情况而定,这里假设为int*/typedef struct{ ElemType data(MAXSIZE); /*数组存储数据元素,最大值为MAXSIZE*/ int length; /*线性表的当前长度*/}Splits;顺序结构需要三个属性:存储控件的起始位置:数组data,它的存储位置就是存储控件的存储位置。线性表的最大存储容量:数组长度MaxSize。线性表的当前长度:length。
- 单独
0 0
- 数据结构拾遗---线性表
- 整理--数据结构--线性表
- 数据结构(线性表)
- 整理--数据结构--线性表
- 数据结构--顺序线性表
- 数据结构之线性表
- 数据结构-线性链表
- 数据结构-线性表
- 复习 [数据结构] ---- 线性表
- 数据结构---线性表
- 数据结构复习-线性表
- 数据结构之线性表
- 数据结构之线性表
- 线性链表---数据结构
- 数据结构—线性表
- 数据结构 线性表
- 数据结构----线性表
- 数据结构之线性表
- linux用户与多个组相关操作
- 用swift实现tableview的展示
- PHP学习总结(2)——PHP入门篇之PHP代码标识
- Android事件分发机制
- Java-001-String和StringBuffer以及StringBuilder
- 数据结构-线性表
- 类的设计
- php7 连接 mysql数据库
- 高效实现Map的原子更新操作(Hystrix的InternMap<K, V>源码解析)
- rtmp complex handshake,支持h264/aac
- 用ajax post array数组到Mvc web Api后台接受不到的问题
- Content Security Policy 入门教程
- PHP学习总结(3)——PHP入门篇之PHP的echo语句
- 自定义view之仿慕课网课程学习圆形进度