线性表的定义
- 线性表是具有相同数据类型的 n n n个数据元素的有序序列,其中 n n n为表长,当 n = 0 n=0 n=0时,线性表是一个空表。
- 若用
L
L
L命名线性表,则其一般表达式为:
L = ( a 1 , a 2 , ⋯ , a i , a i + 1 , ⋯ , a n ) L=(a_1,a_2,\cdots,a_i,a_{i+1},\cdots,a_n) L=(a1,a2,⋯,ai,ai+1,⋯,an)
a 1 a_1 a1 | a 2 a_2 a2 | ⋯ \cdots ⋯ | a i a_i ai | a i + 1 a_{i+1} ai+1 | ⋯ \cdots ⋯ | a n − 1 a_{n-1} an−1 | a n a_n an |
---|
特点
- 其实形式上就如同C/C++中的数组
- 除了第一个元素,每个元素都有一个直接前驱
- 除了最后一个元素,每个元素都有一个直接后继
- 表中的元素个数是有限的
- 表中元素具有逻辑上的顺序性1,表中元素有先后顺序
- 表中元素都是数据元素,都是单个元素
- 表中数据元素类型相同,每个数据元素占据相同的内存空间
- 表中元素具有抽象性,即只讨论元素间的逻辑关系,而不管元素表示的内容
线性表的基本操作
- InitList(&L):初始化线性表,创建一个空表
- Length(L):求表长,即返回表中元素的个数
- LocateElem(L,e):按值查找操作,在表中查找给定关键字的位置
- GetElem(L,i):按位查找操作,在表中找到给定位置的元素的值
- ListInsert(&L,i,e):插入操作,在表中第i个位置插入元素e
- ListDelete(&L,i,&e):删除操作,删除表中第i个位置的元素,并用e返回被删除的元素
- PrintList(L):输出操作,输出表中的所有元素
- Empty(L):判空操作,若L为空表,返回true,否则返回false
- DestroyList(&L):销毁线性表,并释放线性表L所占用的空间
- 在编程中如果要对数据结构中的值进行修改,则要传入数据结构的引用或指针;
- 如果只是对数据结构进行一些判空,查找等不会改变数据结构值的操作,就只传入线性表的名字即可
这里所说的线性表的定义是针对逻辑结构而言的,只考虑他怎么表示,而不管他的存储方式 ↩︎