标题 第2章 数据结构
一、线性表的类型定义及相关概念
- 线性表:由零个或者多个数据元素组成的有限序列。
① 具有线一样的性质、
②最常用且最简单的一种数据结构、
③一个线性表是n个数据元素的有限序列
PS:第一个元素无前驱,最后一个元素无后继,其他元素有且只有一个前驱和后继
(a1, a2, a3……an)
n = 0 时称为空表。 - 数据类型:一组 性质相同的值的集合以及定义在此集合上的一些操作的总称。
PS:int型,char型, float型
数据类型分为两类:原子类型、结构类型
①原子类型:不可再分解的基本类型
如:int型,char型, float型
②结构类型:可再分解的
如:整形数组 - 抽象数据类型(ADT):一个数学模型以及定义在该模型上的一组操作。
抽象数据类型线性表的定义:
ADT抽象数据
Date
数据元素之间的逻辑关系的定义
Operation
操作
endADT
- 操作
InitList(&L) 构建一个空的线性表L
DestoryList(&L) 销毁线性表L
ClearList(L) 清空线性表L
ListEmpty(L) 判断线性表是否为空表
ListLength(L) 返回线性表L中元素个数
GetElem(L, i, &e) 用e返回线性表L中的第i个元素的值
LocateElem(L, e) 在线性表中查找与给定值e相等的元素,如果查找成功,返回该元素在表中的序 号表示成功;否则,返回0表示失败。
ListInsert(&L, i, e) 在线性表L中第i个元素插入新的数据元素e,L的长度增加1 - 求一个新集合A = A U B
void union(List &La, List Lb)
//将所有在线性表Lb中但不在La中的数据元素插入到La中
{
La_len = ListLength(La); Lb_len = ListLength(Lb);//求线性表的长度
for( i = 1; i <=Lb_len; i++)
{
GetElem(Lb, i, e); //取Lb中第i个元素赋给e
if( ! LocateElem(La, e, equal)) //判断La与e相同的元素
ListInsert(La, ++La_len, e); //将不同的元素e插入到La中
}
}//union