数据结构线性表 ppt课件

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1,4,3,2,8,10)
中,1为表头元素,10为表尾元素。
2021/2/5
6
2.1.2 线性表的运算
线性表的基本运算如下:
(1) 初始化线性表InitList(&L):构造一个空的线性表 L。
(2) 销毁线性表DestroyList(&L):释放线性表L占用 的内存空间。
Hale Waihona Puke Baidu
2021/2/5
7
(3) 判线性表是否为空表ListEmpty(L):若L为空 表,则返回真,否则返回假。
/*将LA的所有元素插入到Lc中*/ { GetElem(LA,i,e);
ListInsert(LC,i,e); } lena=ListLength(LA); /*求线性表的长度*/ lenB=ListLength(LB);
2021/2/5
11
for (i=1;i<=lenb;i++) {
GetElem(LB,i,e); /*取LB中第i个数据元素赋给e*/
(9) 删除数据元素ListDelete(&L,i,&e):删除L的第 i(1≤i≤ListLength(L))个元素,并用e返回其值,L的长度 减1。
2021/2/5
9
例2.1 假设有两个集合 A 和 B 分别用两个线性表 LA 和 LB 表示,即线性表中的数据元素即为集合中 的成员。编写一个算法求一个新的集合C=A∪B,即 将两个集合的并集放在线性表LC中。
解:本算法思想是:先初始化线性表LC,将LA的所 有元素复制到LC中,然后扫描线性表LB,若LB的当 前元素不在线性表LA中,则将其插入到LC中。算法 如下:
2021/2/5
10
void unionList(List LA,List LB,List &LC) {
int lena,lenc,i; ElemType e; InitList(LC); for (i=1;i<=ListLength(LA);i++)
2021/2/5
8
(7) 定位查找LocateElem(L,e):返回L中第1个值域 与e相等的位序。若这样的元素不存在,则返回值为0。
(8) 插 入 数 据 元 素 ListInsert(&L,i,e): 在 L 的 第 i(1≤i≤ListLength(L)+1)个元素之前插入新的元素e,L 的长度增1。
O(ListLength(LA)*ListLength(LB))。
2021/2/5
13
2.2 线性表的顺序存储
2.2.1 线性表的顺序存储—顺序表 2.2.2 顺序表基本运算的实现
2021/2/5
14
2.2.1 线性表的顺序存储—顺序表
线性表的顺序存储结构就是:把线性表中的所 有元素按照其逻辑顺序依次存储到从计算机存储 器中指定存储位置开始的一块连续的存储空间中。
(4) 求线性表的长度ListLength(L):返回L中元素 个数。
(5) 输出线性表DispList(L):当线性表L不为空时, 顺序显示L中各结点的值域。
(6) 求 线 性 表 L 中 指 定 位 置 的 某 个 数 据 元 素 GetElem(L,i,&e):用e返回L中第 i(1≤i≤ListLength(L)) 个元素的值。
LOC(A)+(MaxSize-1)*sizeof(ElemType)
顺序表示意图
2021/2/5
17
在定义一个线性表的顺序存储类型时,需要定义一 个数组来存储线线表中的所有元素和定义一个整型 变量来存储线性表的长度。
假定数组用data[MaxSize]表示,长度整型变量用 length表示,并采用结构体类型表示,则元素类型为通 用类型标识符ElemType的线性表的顺序存储类型可 描述如下:
if (!LocateElem(LA,e)) ListInsert(LC,++lenc,e); /*LA中不存在和e相同者,则插入到LC中*/
} }
2021/2/5
12
由 于 LocateElem(LA,e) 运 算 的 时 间 复 杂 度 为 O(ListLength(LA)),所以本算法的时间复杂度为:
2021/2/5
18
typedef struct
n*sizeof(ElemType)
其中,n表示线性表的长度。
2021/2/5
16
下标位置 线性表存储空间 存储地址
0
a1
1
a2


i-1
ai


n-1
an


MaxSize-1

LOC(A) LOC(A)+sizeof(ElemType) LOC(A)+(i-1)*sizeof(ElemType) LOC(A)+(n-1)*sizeof(ElemType)
第2章 线性表
2.1 线性表的基本概念 2.2 线性表的顺序存储
2.3 线性表的链式存储 2.4 线性表的应用 2.5 有序表
本章小结
2021/2/5
1
2.1 线性表的基本概念
2.1.1 线性表的定义 2.1.2 线性表的运算
2021/2/5
2
精品资料
• 你怎么称呼老师?
• 如果老师最后没有总结一节课的重点的难点,你 是否会认为老师的教学方法需要改进?
这样,线性表中第一个元素的存储位置就是指 定的存储位置,第i+1个元素(1≤i≤n-1)的存储位置 紧接在第i个元素的存储位置的后面。
线性表 逻辑结构
顺序表 存储结构
2021/2/5
15
假定线性表的元素类型为ElemType,则每个元素 所占用存储空间大小(即字节数)为sizeof(ElemType), 整个线性表所占用存储空间的大小为:
• 你所经历的课堂,是讲座式还是讨论式? • 教师的教鞭
• “不怕太阳晒,也不怕那风雨狂,只怕先生骂我 笨,没有学问无颜见爹娘 ……”
• “太阳当空照,花儿对我笑,小鸟说早早早……”
2021/2/5
4
2.1.1 线性表的定义
线性表是具有相同特性的数据元素的一个有 限序列。该序列中所含元素的个数叫做线性表的 长度,用n表示,n≥0。
当n=0时,表示线性表是一个空表,即表中不包 含任何元素。设序列中第i(i表示位序)个元素为 ai(1≤i≤n)。
线性表的一般表示为:
(a1,a2,…ai,ai+1,…,an)
2021/2/5
5
其中a1为第一个元素,又称做表头元素,a2为 第二个元素,an为最后一个元素,又称做表尾元 素。
例如,在线性表
相关文档
最新文档