第二章 线性表
2.1 线性表及其基本运算
2.2 线性表的顺序存储结构
2.3 线性表的链式存储结构
1、线性表:是n个数据元素的有限序列。
直接前驱元素、直接后继元素,n = 0时,称为空表。
一个数据元素可以有若干个数据项组成。在这种情况下,常把数据元素称为记录,含有大量记录的线性表又称为文件。
2、基本运算
InitList(&L) 初始化操作 设定一个空的线性表L
ListLength(L)求长度函数 函数值为线性表L中数据元素的个数
GetElem(L,i,&e) 取元素函数 1<=i <=Length(L)时返回L中第i个数据元素给e,否则为空元素NULL。i称为该数据元素在L中的位序。
PriorElem(L,cur_e,&pre_e)求前驱函数 cur_e是L中的一个数据元素,若它的位序大于1,则函数值为cur_e前驱pre_e,否则为NULL
NextElem(L,cur_e,&next_e)求后继元素 若cur_e的位序小于表长,则函数值为elm的后继next_e,否则为NULL
LocateElem(L,e,compare())定位函数 给定值e,若e不在表中,则返回0,否则返回e在表中第一次出现时的位序
ListInsert(&L,i,e)前插操作 在第i个元素之前插入新元素b,i的取值范围为: 1<=i<=n+1;i=n+1表示在表尾插入,n为表长
ListDelete(&L,i,e)删除操作 删除线性表L中的第i个元素,1<=i<=n,并用e返回其值
ListEmpty(L)判空表函数 若L为空表,则返回布尔值”true“,否则返回布尔值“false”
ClearList(&L)表置空操作 将L置为空表
3、线性表的顺序存储结构
线性表的顺序存储结构指的是用一组地址连续的存储单元依次存储线性表的数据元素。
Loc(ai) = Loc(a1) + (i - 1) *k
4、线性表的插入和删除操作
线性表的动态分配顺序存储结构
为顺序表增加一个大小为存储LISTINCREMENT个数据元素的空间。
插入算法的思路:
算法:
删除算法的思路:
算法:
插入算法和删除算法的时间复杂度都为 O(n)
版权声明:本文为博主原创文章,未经博主允许不得转载。
数据结构(严蔚敏、吴伟民)——读书笔记-2、 线性表及其基本运算、顺序存储结构
原文地址:http://blog.csdn.net/cowena/article/details/47321439