线性表抽象数据类型定义
代码语言:javascript复制ADT List
{
数据对象:D={ai | ai ∈ElemSet,i=1,2,3,…,n n≥0}
数据关系:R={ < ai-1,ai > |ai-1,ai ∈D, i=2,3,…,n}
基本操作:
ListInit(L);//线性表初始化
ListDestory(L);//线性表释放
ListEmpty(L);//线性表判空
ListClear(L);//线性表清空
ListLength(L);//线性表的长度
ListGet(L,i);//取表元素
ListLocate(L,x);//按值查找
ListPrior(L,x);//求前驱
ListNext(L,x);//求后驱
ListInsert(L, i,x);//插入
ListDelete(L,i);//删除
}
栈抽象数据类型定义
代码语言:javascript复制ADT Stack {
数据对象:D={ai| ai∈ElemSet, i=1,2,...,n, n≥0 }
数据关系:R1={ < ai-1,ai > | ,ai-1,ai∈D, i=2,...,n }
//约定an端为栈顶,a1端为栈底。
基本操作:
InitStack(&S) // 操作结果:构造一个空栈 S。
DestroyStack(&S) // 初始条件:栈 S 已存在。
// 操作结果:栈 S 被销毁。
ClearStack(&S) // 初始条件:栈 S 已存在。
// 操作结果:将 S 清为空栈。
StackEmpty(S) // 初始条件:栈 S 已存在。
// 操作结果:若栈 S 为空栈,则返回TRUE,否则返回FALSE。
// 判定栈是否为空栈是栈在应用程序中经常使用的操作,
// 通常以它作为循环结束的条件。
StackLength(S) //初始条件:栈 S 已存在。
// 操作结果:返回栈 S 中元素个数,即栈的长度。
GetTop(S, &e) // 初始条件:栈 S 已存在且非空。
//操作结果:用 e 返回S的栈顶元素。
//这是取栈顶元素的操作,只以 e 返回栈顶元素,并不将它从栈中删除。
Push(&S, e) //初始条件:栈 S 已存在。
//操作结果:插入元素 e 为新的栈顶元素。
Pop(&S, &e) //初始条件:栈 S 已存在且非空。
//操作结果:删除 S 的栈顶元素,并用 e 返回其值。
StackTraverse(S, visit( ))
//初始条件:栈 S 已存在且非空,visit( )为元素的访问函数。
//操作结果:从栈底到栈顶依次对S的每个元素调用函数visit( ),
//一旦visit( )失败,则操作失败。
}
队列的抽象数据类型定义
代码语言:javascript复制ADT Queue
{
数据对象:D={ai | ai ∈ElemSet,i=1,2,…,n, n≥0}
数据关系:R={< ai-1 , ai > | ai-1 , ai ∈D,i=2,…,n, n≥0}
// 约定a1端为队列头, an端为队列尾。
基本操作:
int InitQueue ( &Q ); //构造函数,队列初始化操作
int DestoryQueue ( &Q ); //队列破坏操作
int CleareQueue (&Q ); //置队空操作
int IsEmpty ( ) ; //判队空操作
int IsFull ( ) ; //判队满操作
int EnQueue (&Q,&e); //入列操作
int DeQueue (&Q,&e ); //出列操作
int QueueLength (&Q ); //队列长度
int GetFront (&Q,&e ); //读取队首元素操作
}
串的抽象数据类型定义
代码语言:javascript复制ADT String
{
数据对象:D={ai | ai ∈CharSet,i=1,2,…,n, n≥0}
数据关系:R={< ai-1 , ai > | ai-1 , ai ∈D,i=2,…,n, n≥0}
// 约定a1端为头, an端为尾。
基本操作:
InitString(&S) //初始化串S
DestroyString(&S) //串S被销毁
StrAssign(&T,chars) //生成一个其值等于chars的串T
StrCopy(&T,S) //由串S复制得到串T
StrEmpty(S) //若串为空串返回TRUE否则返回FALSE
StrLength(S) //返回s的元素个数称为串的长度
StrCompare(S,T) // S>T 返回 >0 ; S=T ,返回 =0 ; S< t 返回 ;
ClearString(&s) />/将串S清空
SubString(&Sub,S,pos,len) //用sub返回串S的第pos个字符起长度为len的子串
Index(S,T,pos) // 检索串S中是否存在和串T值相同的子串
Replace(&S,T,V) //用V替换串S中出现的所有与T相等的不重叠的子串
StrInsert(&S,pos,T) //在串S的第pos个字符之前插入串T
StrDelete(&S,pos,len) //从串S中删除从第pos个字符起出长度为len的子串
}
数组的抽象数据类型定义
代码语言:javascript复制ADT Array
{
数据对象:D={ai | ai ∈Set,i=1,2,…,n, n≥0}
数据关系:
R={< ai-1 , ai > | ai-1 , ai ∈D,i=2,…,n, n≥0}
基本操作:
int Init Array ( &A ); //构造函数
int getElement( &A,&e,i );
int setElement( &A,&e,i );
int aLength (&A);
int aClear(&T );
}