版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、除海工禽院针篇机科禽系实验报告书课程名:题目:班级:学号:姓名:数据结构线性表数据结构试验软件112评语:成绩:指导教师:批阅时间: 年 月EI数据结构实验报告线性表实验报告要求1目的与要求:1)掌握线性表数据结构的基本概念和抽象数据类型描述:2)熟练掌握线性表数据结构的顺序和链式存储存表示;3)熟练掌握线性表顺序存储结构的基本操作算法实现:4)熟练掌握线性表的链式存储结构的基本操作算法实现;5)掌握线性表在实际问题中的应用和基本编程技巧;6)按照实验题目要求独立正确地完成实验内容(提交程序清单及相关实验数据与运行结 果);7)按照报告格式和内容要求,认真书写实验报告,并在试验后的第三天提交电
2、子(全班同 学提交到学委,再统一打包提交给老师)和纸质(每班每次5份,学委安排,保证每个同学至 少提交一次);8)积极开展实验组组内交流和辅导,严禁复制和剽窃他人实验成果,一旦发现严肃处理;9)上实验课前,要求每个同学基本写好程序,并存储在自己的U盘上,用于实验课堂操 作时调试和运行。凡不做准备,没有提前编写程序者,拒绝上机试验。2实验内容或题目一、顺序表的基本操作实现实验要求:数据元素类型ElemType取整型int。按照顺序存储结构实现如下算法:1)创建任意整数线性表(即线性表的元素值随机在键盘上输入)的顺序存储结构(即顺序表),长度限定在25之内;2)打印/显示(遍历)该线性表(依次打印
3、/显示出表中元素值);3)在顺序表中查找第1个元素,并返回其值;4)在顺序表第1个元素之前插入一已知元素;5)在顺序表中删除第1个元素;6)求顺序表中所有元素值(整数)之和;二、链表(带头结点)基本操作实验要求:数据元素类型ElemType取字符型chac按照动态单链表结构实现如卞算法:1)按照头插法或尾插法创建一个带头结点的字符型单链表(链表的字符元素从键盘输入),长度限定在10之内;2)打印(遍历)该链表(依次打印出表中元素值,注意字符的输入顺序与链表的结点顺序);3)在链表中查找第1个元素,1合法返回元素值,否则,返回FALSE;4)在链表中查找与一已知字符相同的第一个结点,有则返回TR
4、UE,否则,返回FALSE;5)在链表中第1个结点之前插入一个新结点;6)在线性表中删除第1个结点;数据结构实验报告7)计算链表的长度。3实验步骤与源程序#include #define OK1#define ERROR 0#define TRUE 1#define FALSE 0#define ElemType intdefine MAXSIZE 25 /*此处的宏定义常量表示线性表可能达到的最人长度*/using namespace std;typedef struetElemType elemMAXSIZE;/*线性表占用的数组空间*/intlast;/*记录线性表中最后一个元素在数组e
5、lem中的位置(下标值),空表置为-1*/SeqList;void OutputSeqList(SeqList *L)cout顺序表如下:Xendl;int i;for(i=0;ilast;i+)coutLelemi,n ;coutendl;int GetDate(SeqList *L)int t;cout,/请输入要查找的元素的序数:endl;cint;if ( tL-last)数据结构实验报告cout输入错误! “;return(ERROR);else return(LelemLt-lJ);int InsList (SeqList *L)int i, e;cout,/请输入要插入的元素插入
6、位置及要插入的元素endl;cinie;int k;if(iL-last+2) /*首先判断插入位置是否合法*/printfC插入位置i值不合法);return(ERROR);if(L-last= MAXSIZE-1)printfC表已满无法插入);return(ERROR);for (k=L-last ;k=il; k-)/*为插入元素而移动位置*/Lelemk+l=Lelemk;L-elemi-l=e;/*在C语言数组中,第i个元素的下标为LI*/L-last+;return(OK);int DelList (SeqList *L, ElemType *m)int w;cout请输出要删除
7、的元素位置:z/endl;数据结构实验报告4cinw;int k;if(wL-last+l)cout删除位置不合法!elemwl ;/*将删除的元素存放到e所指向的变量中*/for(k=w; klast; k+)L-elemk-l = L-elemk ;/*将后面的元素依次前移*/L-last;return(OK);int sum(SeqList *L)int i,n=0;for(i=0;ilast+l;i+)n=n+Lelemi;return(n);void mainOint *q, n;SeqList *L;L=(SeqList*)malloc(sizeof (SeqList); q =
8、(int*)malloc(sizeof(int); coutlas t 二 nT;cout请输入顺序表:endl;数据结构实验报告for(i=0;ielemi;while (c!二n )cout/z请选择你要进行的操作:z/endl;cout,l.输出顺序表;n2.查找元素;n3.插入元素:n4.删除元 素;求和endl;int xuanze;cinxuanze;switch(xuanze)case 1:OutputSeqList( L);break;case 2:coGetDat( L) endl;break;case 3:InsList( L);break;case 4:DelList(L
9、, q);break:case 5:cosum( L)endl;break;cout是否要继续进行操作y/nendl;cinc;#mclude #mclude#define MAX 15#define TURE 1#define FALSE 0 tvpedef char ElemType; tvpedef stmct Nodechar date;stmct Node * next; Node,*LnikList; void InitList(LuikList *L)*L=(LnikList)nialloc(sizeof(char);数据结构实验报告(*L)-next=NULL;void Pri
10、iitfLink(LHikList L)LinkList p; p=L next; pnntf(”链表为:“); while(p!=NULL)pnntf(H%c rp-date); p=p-next;void Create(LiiikList L)LinkList sj;char c;int flag=l;int n;r=L;pnntf(”元素个数:“); scanfC%dS&ii);if(nMAX)printf(超出限定长度! ”);elseputf(”输入字符(以琏建结束 while(flag)scanf(”c 役&c); if(cF)s=(Node*)malloc(sizeof(char
11、);s-date=c;r-next=s;尸s;elseflag=O;r-next =NULL;void Ordei(LuikList L)char c;数据结构实验报告Nodefbr(i-L-next;r-next! =NULL;i-=r-next) p=【;fbr(q=r-next; q: q=q-next)if(q-date)date)p=q; if(p!=r) c=r-date; i-date=p-date; p-date=c; PrmtfLuik(L);void Get(LinkList L. int i,ElemType *e)int j; Node *p;P=L;J=;while
12、(p-next! =NULL)&p=p-next;J+;*e=p-date ;printf(ll|?%d 个元素为:c”,i广e);elsepimtf(MFALSEH);void Locate(LinkList L. ElemType e)int i=l;LinkList p;p=L-next; while(p&p-date! =e) i=i+; p=p-next;if(!p)pnntf(nFALSEnH);elsepnntf(nTRUEnn); 数据结构实验报告 printf(”该元素在第d个位置!”,i-1);void InsList(LinkList Ljnt iElemType e)N
13、ode *p,*s;int k=0;P=L;wlule(p!=NULL & knext;k=k卄;if(!p)pnntf(”插入位置不合理! ”);s=(Node*)inalloc(sizeof(char);s-date=e; s-next=p next;p next=s;Oider(L);void DelList(LnikList i.ElemType *e)Node *p,*r;mtj;J=0;P=L;wlule(p-next! =NULL)&p=p-next; J+;if(p-next! =NULL)p-next=p-next-next;r=p-next;*e=r-date;删除第d 个
14、元素:cn”,i,*e);elsepnntf(”删除结点的位置i不合理!”);void ListLength(LuikList L)数据结构实验报告Node *p;intj=O; p=L-next; while(p!=NULL)p=p-next;J+;pnntfC单链表的长度:%d-j);void menu()pnntf(”n1.创建任意字符型单循坏链表”);prmtf(Hn2.打印(遍历)该链表”);3.查找第1个元素”);pnntf(”n4.查找与一已知字符相同的元素”);prmtf(Hn5.插入元素”);6.删除第1个结点”);pnntf(”n7.计算链表的长度”);&退出”);n *
15、*void main()mt i;int flag=O;ElemTvpe e;LinkList L;L=(LinkList)malloc(sizeof(char);InitList(&L);menuQ;while(!flag)pnntf(niin请输入你的选揪18):”); scanf(”dt&i);switch(i) case 1:Create(L); break;case 2:Order(L); break;case 3:pnntff输入要查找的第1个元素J; scanff%d 役&i);数据结构实验报告Get(L,i, & 亡); break;case 4:prmtfC输入查找的元素:”
16、); rewind(stdin);scanf(”c 役&e);Locate(L,e);break;case 5:pruitf(输入插入的元素:”); rewind(stdin);scanf(”c 役&e);InsList(L,i,e); break;case 6:prmtfC输入要删除第几个结点:”); scanf(”d 役&i);DelList(L,i,&e); break;case 7:ListLength(L); break;case &flag=l; break; 4测试数据与实验结果(可以抓图粘贴)数据结构实验报告11回数据结构实验报告C:UsersuserDesktopDebugCppl.exe*是否要继续进行操作y请行的操作:津辉,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025工商行政工作计划样例
- 汽车销售个人年终工作总结与计划范文
- 开学学习计划教研学习计划
- 关于法制宣传教育的工作计划范文
- 初三英语教学新学期工作计划
- 《GMP验收办法》课件
- 2025年人事行政部工作计划
- 工伤委托律师代理合同
- 体育生自愿参加训练协议书
- 《复合材料大综述》课件
- HJT 166-2004 土壤环境监测技术规范(正式版)
- 中国文学经典导读智慧树知到期末考试答案章节答案2024年华东政法大学
- 乡村振兴产业基金规划方案
- 2024年浙江杭州西湖云创集团有限公司招聘笔试参考题库附带答案详解
- (2024年)农作物病虫害绿色防控技术课件
- 2024锂电池的电极制备与组装方法
- 减速机维修培训课件
- 羽毛球社团工作总结
- 高三英语一轮复习七选五命题分析课件
- 安徽省合肥市庐阳区2023-2024学年三年级上学期期末数学试卷
- 以问题为导向的教学设计与实践
评论
0/150
提交评论