2023年数据结构实验报告.docx

上传人:wj151****6093 文档编号:81754440 上传时间:2023-03-24 格式:DOCX 页数:14 大小:15.41KB
返回 下载 相关 举报
2023年数据结构实验报告.docx_第1页
第1页 / 共14页
2023年数据结构实验报告.docx_第2页
第2页 / 共14页
点击查看更多>>
资源描述

《2023年数据结构实验报告.docx》由会员分享,可在线阅读,更多相关《2023年数据结构实验报告.docx(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、2023年数据结构实验报告 第一篇:数据结构试验报告 河南省高等教化自学考试 实 验 报 告 册 计算机及应用专业本科段 数据结构 姓名周东伟准考证号010512202308所属地市郑州试验地点河南职业技术学院试验日期2023-3-18试验总成果指导老师签名试验单位试验室看法:主考院校审核看法: 河南科技高校自学考试办公室 其次篇:数据结构试验报告 留意:试验结束后提交一份试验报告电子文档 电子文档命名为“学号+姓名,如:E01214058宋思怡 数据结构试验报告 一学号:姓名:专业年级: 试验名称:线性表 试验日期:2023年4月14日 试验目的: 1、熟识线性表的定义及其依次和链式存储结构

2、; 2、娴熟驾驭线性表在依次存储结构上实现基本操作的方法; 3、娴熟驾驭在各种链表结构中实现线性表基本操作的方法; 4、驾驭用 C/C+语言调试程序的基本方法。 试验内容: 一、编写程序实现依次表的各种基本运算,并在此基础上设计一个主程序完成如下功能: 1初始化依次表L; 2依次在L尾部插入元素-1,21,13,24,8; 3输出依次表L; 4输出依次表L长度; 5推断依次表L是否为空; 6输出依次表L的第3个元素; 7输出元素24的位置; 8在L的第4个元素前插入元素0; 9输出依次表L; 10删除L的第5个元素; 11输出依次表L。 源代码 调试分析给出运行结果界面 二、编写程序实现单链表

3、的各种基本运算,并在此基础上设计一个主程序完成如下功能: 小结或探讨: 1试验中遇到的问题和解决方法 2试验中没有解决的问题 3体会和提高 第三篇:数据结构试验报告 南京信息工程高校试验实习报告 试验实习名称数据结构试验实习日期 2023-11-2得分指导老师周素萍 系公共管理系专业信息管理与信息系统年级10级班次1姓名常玲学号2023230700 3试验一依次表的基本操作及C语言实现 1、依次表的基本操作及 C 语言实现 1、用 C 语言建立自己的线性表结构的程序库,实现依次表的基本操作。 2、对线性表表示的集合,集合数据由用户从键盘输入数据类型为整型,建立相应的依次表,且使得数据按从小到大

4、的依次存放,将两个集合的并的结果存储在一个新的线性表集合中,并输出。 1、根据教材定义的依次表机构,用 C 语言实现依次表结构的创建、插入、删除、查找等操作; 2、利用上述依次表操作实现如下程序:建立两个依次表表示的集合集合中无重 复的元素,并求这样的两个集合的并。 一 Status InsertOrderList(SqList &va,ElemType x) 二 Status DeleteK(SqList &a,int i,int k) /在非递减的依次表va中插入元素x并使其仍成为依次表的算法 int i;if(va.length=va.listsize)return(OVERFLOW);

5、for(i=va.length;i0,xnext;pb=pb-next;A-next=NULL;C=A;while(pa&pb) while(pa) qa=pa;pa=pa-next;qa-next=A-next;A-next=qa;if(pa-data data) else qb=pb;pb=pb-next;qb-next=A-next;/将当前最小结点插入A表表头 A-next=qb;qa=pa;pa=pa-next;qa-next=A-next;/将当前最小结点插入A表表头 A-next=qa; pb=B;free(pb);return OK;qb=pb;pb=pb-next;qb-ne

6、xt=A-next;A-next=qb; 依次表就是把线性表的元素存储在数组中,元素之间的关系干脆通过相邻元素的位置来表达。 优点:简洁,数据元素的提取速度快; 缺点:1静态存储,无法预知问题规模的大小,可能空间缺乏,或奢侈存储空间;2插入元素和删除元素时间困难度高On 求两个集合的并集 该算法是求两个集合s1和s2的并集,并将结果存入s引用参数所表示的集合中带回。首先把s1集合复制到s中,然后把s2中的每个元素依次插入到集合s中,当然重复的元素不应当被插入,最终在s中就得到了s1和s2的并集,也就是在s所对应的实际参数集合中得到并集。 第四篇:数据结构试验报告 试验报告4 排序 一、试验目的

7、 1、驾驭常用的排序方法,并驾驭用高级语言实现排序算法的方法。 2、深刻理解排序的定义和各种排序方法的特点,并能加以灵敏应用。 3、了解各种方法的排序过程及其根据的原则,并驾驭各种排序方法的时间困难度的分析方法。 二、试验要求及内容 要求编写的程序所能实现的功能包括: 1、从键盘输入要排序的一组元素的总个数 2、从键盘依次输入要排序的元素值 3、对输入的元素进行快速排序 4、对输入的元素进行折半插入排序 三、试验代码及相关注释 #include using namespace std;#include “malloc.h typedef struct int key;RedType; type

8、def struct RedType r;int length;SqList; /1 快速排序的结构体 typedef struct int data; int last;Sequenlist;/2 折半插入排序的结构体 int Partition(SqList &L, int low, int high) /1 找寻基准 L.r=L.r;/子表的第一个记录作基准对象 int pivotkey = L.r.key;/基准对象关键字 while(lowlast=0; couti; cout0) for(L-last=1;L-lastlast+) cinL-data; L-last-; retur

9、n(L); middlesort(Sequenlist *L) /2 折半插入排序 int i,j,low,high,mid;for(i=1;ilast;i+) L-data=L-data; low=1; high=i-1; while(lowdatadata) high=mid-1;/插入点在前半区 else low=mid+1;/插入点在后半区 for(j=i;jhigh+1;j-) L-data=L-data; /后移 L-data=L-data;/插入 return 0; int main() gg: coutm;coutn;coutL.r.key; coutnext = NULL;

10、cout n; for(i = 0;i p-data.num; cout p-data.name; cout p-data.phone; cout p-data.phone; cout p-data.mail; cout next = L-next; L-next = p; void InitList(LinkList &L)/初始化线性表 L =(LinkList)malloc(sizeof(LNode); L-next = NULL; void DestroyList(LinkList &L)/销毁线性表 LinkList p, q; p = L; q = p-next; while(q!

11、= NULL) free(p); int ListEmpty(LinkList &L)/推断线性表是否为空 if(L-next = NULL) return TRUE; else return FALSE; int ListLength(LinkList &L)/求链表的长度 LinkList p = L; int c = 0; while(p-next!= NULL) c+; p = p-next; return(c); void GetElem(LinkList &L)/取链表第i个数据元素 LinkList p = L-next; string s; cout s; while(p!=

12、NULL)/根据相关信息,查找员工。 if(p-data.num = s | p-data.name = s | p-data.phone = s | p-data.call = s | p-data.mail = s) break; p = p-next; if(!p) cout next; char j; string s; int i; cout s; while(p!= NULL)/根据相关信息,查找员工。 if(p-data.num = s | p-data.name = s | p-data.phone = s | p-data.call = s | p-data.mail = s

13、) break; p = p-next; if(!p) cout i; cout j; switch(i) case 1:strcpy(p-data.num, j);break; case 2:strcpy(p-data.name, j);break; case 3:strcpy(p-data.phone, j);break; case 4:strcpy(p-data.call, j);break; case 5:strcpy(p-data.mail, j);break; default: cout i; while(p-next & j next; p-next = q-next;/删除并释

14、放结点 free(q); void ListInsert(LinkList &L) LinkList s, p = L; s =(LinkList)malloc(sizeof(LNode); cout s-data.num; cout s-data.name; cout s-data.phone; cout s-data.phone; cout s-data.mail; cout next = p-next; p-next = s; void PrintList(LinkList &L)/打印线性表 LinkList p = L-next; int i = 1; if(p = NULL) co

15、ut i; while(p-next & j next; p-next = q-next;/删除并释放结点 free(q); void ListInsert(LinkList &L) LinkList s, p = L; s =(LinkList)malloc(sizeof(LNode); cout s-data.num; cout s-data.name; cout s-data.phone; cout s-data.phone; cout s-data.mail; cout next = p-next; p-next = s; void PrintList(LinkList &L)/打印线

16、性表 LinkList p = L-next; int i = 1; if(p = NULL) cout “通讯录为空! endl; while(p!= NULL) cout “第 i“ 个员工信息 endl; cout “ 员工编号:data.num endl; cout “ 员工姓名:data.name endl; cout “办公室电话号码:data.phone endl; cout “ 手机号码:data.phone endl; cout “ 员工邮箱:data.mail endl; cout “= endl;break; case 4: /添加 ListInsert(L); cout “添加信息胜利!; system(“pause); break; case 5: PrintList(L); ListDelete(L); cout “删除信息胜利!; system(“pause); break;/输出全部信息 case 6: PrintList(L); system(“pause); break; case 7: cout “该通讯录共有 ListLength(L)“ 员工信息! endl; system(“pause); break; default: cout “输入错误! endl; system(“pause); while(in!= 0); 5.试验截图.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁