一实验名称:
实验题1:实现顺序表的各种基本运算的算法
实验题2:实现单链表的各种基本运算的算法
二实验内容:
1.编写一个程序sqlist.cpp,实现顺序表的各种基本运算和整体建表算法(假设顺序表的元素类型ElemType为char),并在此基础上设计一个程序exp2-1.cpp完成一下功能。
- 初始化顺序表L
- 依次插入a、b、c、d、e元素
- 输出顺序表L
- 输出顺序表L的长度
- 判断顺序表L是否为空
- 输出顺序表L的第3个元素
- 输出元素a的位置
- 在第4个元素位置上插入f元素
- 输出顺序表L
- 删除顺序表L的第3个元素
- 输出顺序表L
- 释放顺序表L
2.编写一个程序linklist.cpp,实现单链表的各种基本运算和整体建表算法(假设单链表的元素类型ElemType为char),并在此基础上设计一个程序exp2-2.cpp完成以下功能。
- 初始化单链表h
- 依次采用尾插法插入a、b、c、d、e元素
- 输出单链表h
- 输出单链表h的长度
- 判断单链表h是否为空
- 输出单链表h的第3个元素
- 输出元素a的位置
- 在第4个元素位置上插入f元素
- 输出单链表h
- 删除单链表h的第3个元素
- 输出单链表h
- 释放单链表h
- 算法及UML图:
void Creatlist(Sqlist *&L,ElemType a[],int n) //建立顺序表 { L=(Sqlist *)malloc(sizeof(Sqlist)); for(int i=0;i<n;i++) L->data[i]=a[i]; L->length=n; } void Initlist(Sqlist *&L) //初始化顺序表 { L=(Sqlist*)malloc(sizeof(Sqlist)); L->length=0; } void Destroylist(Sqlist *&L) //销毁顺序表 { free(L); } void ListEmpty(Sqlist *&L) //判断顺序表是否为空表 { printf("判断线性表是否为空?"); if(L->length==0) printf("TRUE"); else printf("FALSE"); printf("\n"); } int Listlength(Sqlist *&L) //求顺序表的长度 { printf("顺序表的长度为:%d",L->length); print