版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、psme淮海工学院计算机科学系实验报告书课程名:数据结构线性表数据结构试验题目:班级:软件112学号:姓名:评语:成绩: 指导教师: 批阅时间:线性表实验报告要求1 目的与要求 :1)掌握线性表数据结构的基本概念和抽象数据类型描述;2)熟练掌握线性表数据结构的顺序和链式存储存表示;3)熟练掌握线性表顺序存储结构的基本操作算法实现;4)熟练掌握线性表的链式存储结构的基本操作算法实现;5)掌握线性表在实际问题中的应用和基本编程技巧;6)按照实验题目要求独立正确地完成实验内容(提交程序清单及相关实验数据与运行结 果);7)按照报告格式和内容要求, 认真书写实验报告, 并在试验后的第三天提交电子 (全
2、班同 学提交到学委,再统一打包提交给老师)和纸质(每班每次 5 份,学委安排,保证每个同学至 少提交一次) ;8)积极开展实验组组内交流和辅导,严禁复制和剽窃他人实验成果,一旦发现严肃处理;9)上实验课前,要求每个同学基本写好程序,并存储在自己的U 盘上,用于实验课堂操作时调试和运行。凡不做准备,没有提前编写程序者,拒绝上机试验。2 实验内容或题目一、顺序表的基本操作实现实验要求:数据元素类型 ElemType取整型int。按照顺序存储结构实现如下算法:1)创建任意整数线性表 (即线性表的元素值随机在键盘上输入) 的顺序存储结构 (即顺序表)长度限定在 25 之内;2)打印 /显示(遍历)该线
3、性表(依次打印 /显示出表中元素值) ;3)在顺序表中查找第 i 个元素,并返回其值;4)在顺序表第 i 个元素之前插入一已知元素;5)在顺序表中删除第 i 个元素;6)求顺序表中所有元素值(整数)之和;二、链表(带头结点)基本操作实验要求:数据元素类型 ElemType取字符型char。按照动态单链表结构实现如下算法:1) 按照头插法或尾插法创建一个带头结点的字符型单链表(链表的字符元素从键盘输入),长度限定在 10 之内;2) 打印(遍历)该链表(依次打印出表中元素值,注意字符的输入顺序与链表的结点顺序);3) 在链表中查找第 i 个元素, i 合法返回元素值,否则,返回FALSE;4)
4、在链表中查找与一已知字符相同的第一个结点,有则返回TRUE ,否则,返回 FALSE ;5)在链表中第 i 个结点之前插入一个新结点;6)在线性表中删除第 i 个结点;7) 计算链表的长度。3 实验步骤与源程序#include #define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define ElemType int#define MAXSIZE 25 /* 此处的宏定义常量表示线性表可能达到的最大长度 */ using namespace std;typedef struct,空表ElemType elemMAXSIZE; /*
5、线性表占用的数组空间 */int last; /* 记录线性表中最后一个元素在数组elem 中的位置(下标值)置为 -1*/SeqList;void OutputSeqList(SeqList *L)cout 顺序表如下: endl;int i; for(i=0;ilast;i+)coutelemin;coutendl;int GetDate(SeqList *L)int t;cout 请输入要查找的元素的序数: t;if( tL-last)coutelemt-1);int InsList(SeqList *L)int i,e;cout 请输入要插入的元素插入位置及要插入的元素 ie;int
6、k;if(iL-last+2) /* 首先判断插入位置是否合法 */printf( 插入位置 i 值不合法 );return(ERROR);if(L-last= MAXSIZE-1)printf( 表已满无法插入 );return(ERROR);for(k=L-last;k=i-1;k-) /* 为插入元素而移动位置 */ L-elemk+1=L-elemk;L-elemi-1=e; /* 在 C 语言数组中,第 i 个元素的下标为 i-1*/ L-last+;return(OK);int DelList(SeqList *L,ElemType *m)int w;cout 请输出要删除的元素位
7、置: w;int k;if(wL-last+1)cout 删除位置不合法 !elemw-1; /* 将删除的元素存放到 e 所指向的变量中 */ for(k=w; klast; k+)L-elemk-1 = L-elemk; /*将后面的元素依次前移 */L-last-;return(OK);int sum(SeqList *L)int i,n=0;for(i=0;ilast+1;i+) n=n+L-elemi;return(n);void main()int *q,n;SeqList *L;L=(SeqList*)malloc(sizeof(SeqList);q = (int*)malloc
8、(sizeof(int);coutn;L-last=n-1;cout 请输入顺序表: endl;int i;for(i=0;iL-elemi;char c=y;while(c!=n)cout 请选择你要进行的操作: endl;删除元cout1. 输出顺序表; n2. 查找元素; n3. 插入元素; n4. 素; n5. 求和 xuanze;switch(xuanze)case 1:OutputSeqList( L);break;case 2:coutGetDate( L)endl;break;case 3:InsList( L);break;case 4:DelList(L,q);break;
9、case 5:coutsum( L)endl;break;cout 是否要继续进行操作 y/n:c;#include #include #define MAX 15 #define TURE 1 #define FALSE 0 typedef char ElemType; typedef struct Node char date;struct Node * next; Node,*LinkList;void InitList(LinkList *L)*L=(LinkList)malloc(sizeof(char);(*L)-next=NULL;void PrintfLink(LinkList
10、 L)LinkList p; p=L-next; printf( 链表为 :); while(p!=NULL) printf(%c ,p-date); p=p-next;void Create(LinkList L)LinkList s,r; char c; int flag=1; int n; r=L;printf( 元素个数 :); scanf(%d,&n); if(nMAX)printf( 超出限定长度 !); elseprintf( 输入字符 (以 #键结束 ):); while(flag) scanf(%c,&c); if(c!=#) s=(Node*)malloc(sizeof(c
11、har); s-date=c;r-next=s; r=s; elseflag=0; r-next =NULL;void Order(LinkList L)char c;Node *r,*q,*p;for(r=L-next;r-next!=NULL;r=r-next ) p=r;for(q=r-next;q;q=q-next )if(q-date)date) p=q;if(p!=r)c=r-date;r-date=p-date; p-date=c; PrintfLink(L);void Get(LinkList L, int i, ElemType *e)int j; Node *p;p=L;
12、j=-1;while (p-next!=NULL)&(jnext;j+;*e=p-date ;if(i=j)printf( 第 %d 个元素为 :%c,i,*e);elseprintf(FALSE);void Locate(LinkList L, ElemType e)int i=1;LinkList p;p=L-next ;while(p&p-date!=e)i=i+;p=p-next;if(!p)printf(FALSEn);elseprintf(TRUEn);printf( 该元素在第 %d 个位置 !,i-1); void InsList(LinkList L,int i,ElemTy
13、pe e)Node *p,*s;int k=0;p=L; while(p!=NULL&knext; k=k+;if(!p)printf( 插入位置不合理 !); s=(Node*)malloc(sizeof(char); s-date=e;s-next=p-next;p-next=s;Order(L);void DelList(LinkList L,int i,ElemType *e)Node *p,*r;int j;j=0;p=L; while(p-next!=NULL)&(jnext; j+; if(p-next!=NULL) p-next=p-next-next; r=p-next;*e
14、=r-date ; printf( 删除第 %d 个元素 :%cn,i,*e);elseprintf( 删除结点的位置 i 不合理 !); void ListLength(LinkList L)Node *p;int j=0; p=L-next; while(p!=NULL) p=p-next;j+; printf( 单链表的长度 :%d,j);void menu()printf(n*菜单*);printf(n1.创建任意字符型单循环链表);printf(n2.打印(遍历)该链表 );printf(n3.查找第 i 个元素 );printf(n4.查找与一已知字符相同的元素);printf(n
15、5.插入元素 );printf(n6.删除第 i 个结点);printf(n7.计算链表的长度);printf(n8.退出 );printf(n*);void main()int i;int flag=0;ElemType e;LinkList L;L=(LinkList)malloc(sizeof(char);InitList(&L);menu();while(!flag)printf(nn 请输入你的选择 (18):);scanf(%d,&i);switch(i)case 1:Create(L); break;case 2:Order(L);break;case 3:printf( 输入要
16、查找的第 i 个元素 :); scanf(%d,&i);Get(L,i,&e);break;case 4:printf( 输入查找的元素 :); rewind(stdin);scanf(%c,&e);Locate(L,e);break;case 5:printf( 输入插入的元素 :); rewind(stdin);scanf(%c,&e);InsList(L,i,e); break;case 6:printf( 输入要删除第几个结点 :);scanf(%d,&i);DelList(L,i,&e); break;case 7:ListLength(L); break;case 8:flag=1
17、;break;4 测试数据与实验结果(可以抓图粘贴)作操的-T逝爲 你顺元元一兀岀找入除和 选整9 曰疋y请1 2 3 4 5 4进讲表; 续要唾畫 继你顺元元 要摂岀找入除和 否诜鑿是9号 i个元:3素:2、主g捌 输八.:c遠逋入你的选择 們8:2链表为:?黑选择5心 侍 以$键结束:abcde$ eC:UsersuserDesktopDebugCppl.exee入子 请元输匸-tK12345678表 链 环I相 单链符 rl素吟& 字辱已弋的 二-素诒表 任第与元第链 创打查查ib 选的加 你杳O 入要E 输訂 请5结果分析与实验体会1. 编程时,要注意随时写点注释,有利于编译;2. 要
18、先熟悉书本上的内容,否则编译会有困难;3. 不能太过死板,要灵活运用所学知识。仅供个人用于学习、研究;不得用于商业用途For personal use only in study and research; not for commercial use.Nur f u r den pers?nlichen f u r Studien, Forschung, zu kommerziellen Zwecken verwendet werden.Pour l e tude et la recherche uniquementa des fins personnelles; pasa des fins commerciales.to员bko gA.nrogeHKO TOpBieno 员 b3ymm(acH6yqeHu兄 cj egoB u HHue肉go 员冶hbiUCnO 员 B3OBaTbCEb KOMMepqeckux以下无正文仅供个人用于学习、研究;不得用于商业用途For personal use only in study and research; not for commercial use
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年标准建筑材料供应协议模板版B版
- 2024至2030年中国256级灰度视频显示屏系统行业投资前景及策略咨询研究报告
- 2024年度幼儿亲子活动中心运营合同3篇
- 2024年度商品混凝土定制加工服务全面协议2篇
- 中考英语作文:对我影响最大的人(常用短语30个+重要句型20句+范文8篇)讲义
- 2024年度安全生产教育培训责任协议书范本3篇
- 基于学习任务群的小学语文大单元教学策略探讨
- 核心素养背景下小学美术手工课教学的方法与路径
- 2024年度医院员工竞业限制合同6篇
- 临夏现代职业学院《光学功能材料Ⅰ》2023-2024学年第一学期期末试卷
- 安徽省蚌埠市联考2024-2025学年七年级上学期12月期末考试英语试题(无答案)
- 心理健康课件教学课件
- 2024至2030年中国甲醚化氨基树脂行业投资前景及策略咨询研究报告
- 贵州省建筑工程施工资料管理导则
- 2024年度钢模板生产与销售承包合同3篇
- 《QHSE体系培训》课件
- 计量经济学论文-城镇单位就业人员工资总额的影响因素
- 《农业企业经营管理》试题及答案(U)
- 山东省聊城市2024-2025学年高一上学期11月期中物理试题
- 孙悟空课件教学课件
- 华南理工大学《自然语言处理》2023-2024学年期末试卷
评论
0/150
提交评论