线性表的抽象数据类型的实现.doc
《线性表的抽象数据类型的实现.doc》由会员分享,可在线阅读,更多相关《线性表的抽象数据类型的实现.doc(10页珍藏版)》请在沃文网上搜索。
1、 数据结构实验报告 - 10 -1实验题目或内容实验题目:一、顺序表的基本操作实现实验二、链表(带头结点)基本操作实验实验内容:一、按照顺序存储结构实现如下算法(各算法边界条件和返回结果适当给出): 1)创建任意整数线性表(即线性表的元素值随机在键盘上输入),长度限定在25之内; 2)打印(遍历)该线性表(依次打印出表中元素值); 3)在线性表中查找第i个元素,并返回其值; 4)在线性表中第i个元素之前插入一已知元素; 5)在线性表中删除第i个元素; 6)求线性表中所有元素值(整数)之和;二、按照动态单循环链表结构实现如下算法(各算法边界条件适当给出): 1)创建任意字符型有序(递增排序)单循
2、环链表(即链表的字符元素随机在键盘上输入),长度限定在15之内; 2)打印(遍历)该链表(依次打印出表中元素值); 3)在链表中查找第i个元素,i合法返回元素值,否则,返回FALSE; 4)在链表中查找与一已知字符相同的第一个结点,有则返回TRUE,否则,返回FALSE; 5)在链表中按照有序方式插入一已知字符元素; 6)在线性表中删除第i个结点; 7)计算链表的长度。2目的与要求实验目的:1)掌握线性表的顺序存储结构和链式存储结构;2)熟练掌握顺序表和链表基本算法的实现;3)掌握利用线性表数据结构解决实际问题的方法和基本技巧;4)按照实验题目要求独立正确地完成实验内容(编写、调试算法程序,提
3、交程序清单及及相关实验数据与运行结果);5)按时提交实验报告。 实验要求:一、要求:数据元素类型ElemType取整型int。按照顺序存储结构实现如下算法(各算法边界条件和返回结果适当给出): 1)创建任意整数线性表(即线性表的元素值随机在键盘上输入),长度限定在25之内; 2)打印(遍历)该线性表(依次打印出表中元素值); 3)在线性表中查找第i个元素,并返回其值; 4)在线性表中第i个元素之前插入一已知元素; 5)在线性表中删除第i个元素; 6)求线性表中所有元素值(整数)之和;二、要求:数据元素类型ElemType取字符型char。按照动态单循环链表结构实现如下算法(各算法边界条件适当给
4、出): 1)创建任意字符型有序(递增排序)单循环链表(即链表的字符元素随机在键盘上输入),长度限定在15之内; 2)打印(遍历)该链表(依次打印出表中元素值); 3)在链表中查找第i个元素,i合法返回元素值,否则,返回FALSE; 4)在链表中查找与一已知字符相同的第一个结点,有则返回TRUE,否则,返回FALSE; 5)在链表中按照有序方式插入一已知字符元素; 6)在线性表中删除第i个结点; 7)计算链表的长度。3实验步骤与源程序一、顺序表的源程序#include#include#includeint list25;int i,n,a,sum=0,k,l;int eleminsert;/*-
5、创建函数-*/void initlist()printf(Please input the total of the elems:);scanf(%d,&n);if(n25|n1) printf(ERROE!);return;printf(Please input the elems:.n);for(i=0;in;i+) scanf(%d,&listi); return;/*-打印函数-*/void Print(int list,int n)int j;for(j=0;jn;j+)printf(%dt,listj);printf(n);return;/*-查找函数-*/void Search(
6、int list,int n,int m)if(mn)printf(ERROR!n); return ;else printf(The elem is %d at %d placen,listm-1,m);return;/*-插入函数-*/void Insert(int list,int n,int m,int elem)int j;if(mn)printf(ERROR!n); return ;for(j=n-1;j=m-1;j-)listj+1=listj;listm-1=elem;n=n+1;printf(The new list are: );Print(list,n);return;/
7、*-删除函数-*/void Delete(int list,int n,int m)int q;if(mn) printf(ERROR!n); return ;for(q=m-1;q=n;q+)listq=listq+1;printf(The new list are:);Print(list,n-1);return;/*-求和函数-*/void Sum(int list,int n,int sum)int j;for(j=0;jn;j+)sum=sum+listj;printf(The sum is :%d,sum);return;void menu()int j;/*-菜单函数-*/men
8、ulab:printf(* MENU *nn);printf(Create a new int list :.press 1nn);printf(Print the whole list :.press 2nn);printf(Search by order :.press 3nn);printf(Insert the elem in the place i:.press 4nn);printf(Delete the elem by order :.press 5nn);printf(Sum all elem in the list :.press 6nn);printf(exit the p
9、rograme :.press 0nn);printf(* END *nn);printf(Please choose the number from (06).);checklabel: scanf(%1d,&j);getchar();if(j7) printf(Error! Please choose again.); goto checklabel; printf(ntYou choose the number %dn ,j);printf(ntPress any key to continue.);getchar();system(cls); /*clear screen*/switc
10、h(j) case 1:/*创建任意整数线性表*/initlist(); system(cls); /*clear screen*/goto menulab;case 2: /*打印(遍历)该线性表*/printf(The original list is:);Print(list,n);printf(Press any key to continue.);getchar();system(cls); /*clear screen*/goto menulab;case 3:/*在线性表中查找第i个元素,并返回其值*/printf(Input which LNode you want to Se
11、arch(Input number):);scanf(%d,&a);getchar();Search(list,n,a);printf(Press any key to continue.); getchar();system(cls); /*clear screen*/goto menulab;case 4:/*在线性表中第i个元素之前插入一已知元素*/printf(Please input the elems place where you want to insert);scanf(%d,&k);printf(Input the elem which you want to insert
12、:);scanf(%d,&eleminsert);Insert(list,n,k,eleminsert);printf(Press any key to continue.);getchar();system(cls); /*clear screen*/goto menulab;case 5:/*在线性表中删除第i个元素*/printf(Please input the elem you want to delete:);scanf(%d,&l);n=n+1;Delete(list,n,l);n=n-1;printf(Press any key to continue.);getchar();
13、system(cls); /*clear screen*/goto menulab;case 6:/*求线性表中所有元素值(整数)之和*/Sum(list,n,sum);printf(Press any key to continue.);getchar();system(cls); /*clear screen*/goto menulab;case 0:/*退出程序*/printf(Press any key to continue.);getchar();exit(0);void main() void menu(); menu();二、链表(带头结点)的源程序#include#inclu
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 线性 抽象 数据类型 实现