该【数据结构课件线性表 】是由【7489238】上传分享,文档一共【68】页,该文档可以免费在线阅读,需要了解更多关于【数据结构课件线性表 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。 线性表的类型定义
线性表的顺序表示和实现
线性表的链式表示和实现
一元多项式的表示及相加
单击此处添加副标题
第2章 线性表
线性结构的特点:
在数据元素的非空有限集中,1)有且仅有一个开始结点;2)有且仅有一个终端结点;3)除第一个结点外,集合中的每个数据元素均有且只有一个前驱;4)除最后一个结点外,集合中的每个数据元素均有且只有一个后继。
线性序列:线性结构中的所有结点按其关系可以排成一个序列,记为(a1,…,ai,ai+1,…an)
01
02
线性表的类型定义
线性表的类型定义
1. 线性表
1)线性表是n(n ≥0)个数据元素的有限序列。
2)线性表是一种最常用且最简单的数据结构。
含有n个数据元素的线性表是一个数据结构:
List = (D,R)
其中:D = {ai | ai∈D0,i=1,2,…n,n≥0}
R = {N}, N = {< ai-1 , ai > | ai-1 , ai ∈D0 , i = 2,3,…n}
D0 为某个数据对象——数据的子集
特性:均匀性,有序性(线性序列关系)
线性表
线性表的长度及空表
线性表中数据元素的个数n(n≥0)定义为线性表的长度
当线性表的长度为0 时,称为空表。
ai 是第i个数据元素,称i为ai 在线性表中的位序。
线性表的类型定义
p19~p20
InitList(&L) 初始化,构造一个空的线性表
ListLength(L) 求长度,返回线性表中数据元素个数
GetElem(L,i,&e) 取表L中第i个数据元素赋值给e
LocateElem(L,e) 按值查找,若表中存在一个或多个值为e的结点,返回第一个找到的数据元素的位序,否则返回一个特殊值。
ListInsert(&L,i,e) 在L中第i个位置前插入新的数据元素e,表长加1。
ListDelete(&L,i,e) 删除表中第i个数据元素,e返回其值,表长减1。
1
2
3
4
5
6
时间复杂度:LocateElem()执行次数 O(ListLength(A)*ListLength(B))
例2-2 合并LA 和 LB 到LC中
例2-1 求A = A ∪ B
01
时间复杂度:ListInsert()执行次数O(ListLength(LA)+ListLength(LB))
P20-
02
线性表的基本操作举例
线性表的顺序表示和实现 —线性表的顺序存储结构
1)在计算机内存中用一组地址连续的存储单元依次 存储线性表中的各个数据元素。
2)假设线性表的每个元素需占用L个存储单元,并以所占的第一个单元的存储地址作为数据元素的起始存储位置,则线性表中第i+1个数据元素的存储位置Loc(ai+1)和第i个数据元素的存储位置Loc(ai)之间满足下列关系:
Loc(ai+1) = Loc(ai) + L
一般来说,线性表的第i个元素ai的存储位置为:
Loc(ai) = Loc(a1) + (i-1)*L
其中Loc(a1)是线性表的第一个数据元素a1的存储位置,通常称作线性表的起始位置或基地址。
根据线性表的顺序存储结构的特点,只要确定了存储线性表的起始位置,线性表中任一数据元素都可随机存取,所以,线性表的顺序存储结构是一种随机存取的存储结构。
用“物理位置”相邻来表示线性表中数据元素之间的逻辑关系。
02
01
线性表的顺序存储结构示意图——
—线性表的顺序存储结构
#define LIST_MAX_LENTH 100/或者N/或者是一 个
常数
typedef struct ElemType {
int *elem; //存储空间的基址
int length; //当前的长度
} SqList;
SqList L;
C语言中静态分配描述 p22
求置空表
Status ClearList( &L )
{
L. length=0;
return OK;
1
2
3
}
C语言中静态分配描述 p22
4
数据结构课件线性表 来自淘豆网m.daumloan.com转载请标明出处.