线性表的抽象定义及使用

来源:本站
导读:目前正在解读《线性表的抽象定义及使用》的相关信息,《线性表的抽象定义及使用》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《线性表的抽象定义及使用》的详细说明。
简介:本文主要介绍了线性表的抽象定义及使用

ADT 线性表 (List)

Data

线性表的数据对象集合为{a1,a2,.....an},每个元素的类型均为DataType,其中,除第一个元素a1外,每一个元素只有一个直接前驱元素,除了最后一个元素外,每个元素都有一个后继元素。数据之间的关系是一对一的关系。

Operation

InitList (*L) : 初始化操作,建立一个空的线性表L.

ListEmpty(L) : 若线性表为空,返回true,否则返回false.

ClearList(*L) : 将线性表清空

GetElem(L,i,*e) : 将线性表L中的第i个位置元素值返回给e.

LocateElem(L,e) : 在线性表L中查找与给定值e相等的元素,如果查找成功,返回该元素在表中序号表示成功,否则,返回0表示失 败

ListInsert(*L,i,e) : 在线性表L中的第i个位置插入新元素e.

ListDelete(*L,i,*e) : 删除线性表中的第i个位置元素,并用e返回其值。

ListLength(L) : 返回线性表L的元素个数。

endADT

比如,要实现二个线性表集合A和B的并集操作, A= A U B .

/*将所有的在线性表Lb中但不在La中的数据元素插入到La中*/

void unionL( List *La , List Lb)

{

int La_len,Lb_len, i;

ElemType e; /*声明与La和Lb相同的数据元素e*/

La_len = ListLength ( La); /* 求线性表的长度* /

Lb_len = ListLength (Lb);

for ( i=1; i<= Lb_len; i++) {

GetElem( Lb, i, &a); //取Lb中的第i个数据元素赋给e

if(!Locate(La, e)) // La中不存在和e相同的数据元素

ListInsert(La, ++ La_len, e); //插入

}

}

线性 表的顺序存储的结构代码

#define MAXSIZE 20

typedef int ElemType;

typedef struct {

ElemType data[MAXSIZE] ; //数组存储数据元素,最大值为MAXSIZE

int length;

}SqList;

一.获得元素操作

#define Ok 1

#define ERROR 0

#define TRUE 1

#define FALSE 0

typedef int Status;

//操作结果,用e返回L中第i个数据元素的值

Status GetElem( Sqlist L , int i, ElemType *e)

{

if (L.length == 0 || i < 1 || i>L.length)

return ERROR;

*e = L.data[i-1];

return OK;

}

提醒:《线性表的抽象定义及使用》最后刷新时间 2024-03-14 01:05:34,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《线性表的抽象定义及使用》该内容的真实性请自行鉴别。