线性表的基本概念:
定义:
线性表是一个具有相同特性的数据元素的有限 序列
1.相同特性:即所有元素属于同一数据类型;
2.有限:即数据元素个数有限的;
3.序列:即数据元素由逻辑序号唯一确定。一个线性表中可以有相同值的元素;
注:
线性表中所含元素的个数叫做线性表的长度,
用n表示,n≥0 。
n=0时,表示线性表是一个空表,即表中不包含任何元素。
4.线性表的逻辑表示:
即(a1,a2,…,ai,ai+1,…,an)
表头元素 表尾元素
ai(1≤i≤n)表示第i(i表示逻辑位序)个元素。
运算:
线性表的9个基本运算如下:
1.初始化线性表InitList(&L):构造一个空的线性表L。
2.销毁线性表DestroyList(&L):释放线性表L占用的内存空间。
3.判线性表是否为空表ListEmpty(L):若L为空表,则返回真,否则返回假。
4.求线性表的长度ListLength(L):返回L中元素个数n。
5.输出线性表DispList(L):线性表L不为空时,顺序显示L中各结点的值域。
6.求线性表L中指定位置的某个数据元素GetElem(L,i,&e):用e返回L中第 i(1≤i≤n)个元素的值。
7.定位查找LocateElem(L,e):返回L中第一个值域与e相等的逻辑位序。若这样的元素不存在,则返回值为0。
8.插入一个数据元素ListInsert(&L,i,e):在L的第i(1≤i≤n)个元素之前插入新的元素e,L的长度增1。
9.删除数据元素ListDelete(&L,i,&e):删除L的第i(1≤i≤n)个元素,并用e返回其值,L的长度减1。
作用:
知识结构:
线性表的存储结构:
顺序存储结构:
称为“顺序表”;
把线性表中的所有元素按其逻辑顺序,依次存储到从指定的存储位置开始的一块连续的存储空间中(第一个元素的存储位置就是指定的存储位置);
链式存储结构:
称为“链表”;
每个结点不仅包含所存元素信息,还包含元素之间逻辑关系的信息
(eg:单链中,前驱结点包含后继结点的地址信息,即可以通过前驱结点找到后继结点的位置)