GetElem(List L, int i, ElemType *e)
初始条件:线性表 L 已经存在,1≤i≤ListLength(&L)
操作结果:用 e 返回 L 中第 i 个数据元素的值。
EqualList(ElemType *e1,ElemType *e2)
初始条件:数据元素 e1,e2 存在
操作结果:以 e1,e2 中的姓名项作为判定 e1,e2 是否相等的依据。
Less_EquaList(ElemType *e1,ElemType *e2)
初始条件:数据元素 e1,e2 存在
操作结果:以 e1,e2 中的姓名项(为字符串)的≤来判定 e1,e2 是否有≤的关系。
LocateElem(List *La,ElemType e,int type)
初始条件:线性表 La 已经存在
操作结果:判断 La 中是否有与 e 相同的元素。
MergeList(List *La,List *Lb,List *Lc)
初始条件:非递减线性表 La,Lb 已经存在
操作结果:合并 La,Lb 得到 Lc,Lc 仍按非递减有序排列。
UnionList(List *La ,List *Lb)
初始条件:线性表 La,Lb 已经存在
操作结果:将所有在 Lb 而不在 La 中的元素插入到 La 中表尾的位置。
PrintList(List L)
初始条件:线性表 L 已经存在
操作结果:打印出表 L。
ListInsert(List *L, int i, struct STU e)
初始条件:线性表 L 已经存在,1≤i≤ListLength(&L)+1
操作结果:在表 L 中第 i 个位置前插入元素 e,L 的长度加 1。
}ADT List
2. 本程序有三个模块:
⑴ 主程序模块
void main(){
初始化;
{
接受命令;
显示结果;
}
}
⑵ 线性表单元模块:实现线性表抽象数据类型;
⑶ 结点结构单元模块:定义线性表中的结点结构。
三、详细设计
⒈ 元素类型,结点类型
struct STU{
char name[20]; //学生名字、学号、年龄、分数
char stuno[10];
int age;
int score;
};
typedef struct STU ElemType; //元素类型
3