欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    电大《数据结构》实验报告.pdf

    • 资源ID:73841072       资源大小:647.74KB        全文页数:14页
    • 资源格式: PDF        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    电大《数据结构》实验报告.pdf

    数据结构形成性考核册 实验名称:实验一 线性表 线性表的链式存储结构【问题描述】某项比赛中,评委们给某参赛者的评分信息存储在一个带头结点的单向链表中,编写程序:(1)显示在评分中给出最高分和最低分的评委的有关信息(姓名、年龄、所给分数等)。(2)在链表中删除一个最高分和一个最低分的结点。(3)计算该参赛者去掉一个最高分和一个最低分后的平均成绩。【基本要求】(1)建立一个评委打分的单向链表;(2)显示删除相关结点后的链表信息。(3)显示要求的结果。【实验步骤】(1)运行 PC中的 Microsoft Visual C+程序,(2)点击“文件”“新建”对话窗口中“文件”“c+Source File”在“文件名”中输入“”在“位置”中选择储存路径为“桌面”“确定”,(3)输入程序代码,程序代码如下:#include#include#include#include#include#define NULL 0#define PWRS 5 2.2fge=n;ame);printf(性别 0 女 1 男:);scanf(%d,&mi.sex);printf(年龄:);scanf(%d,&mi.age);printf(n);return 1;int calc(STD*m,STD*n,STD*r,float&Fage,float&Mage)int i,j=1,k=1;n0.age=r0.age=0;for(i=1;i=m0.age;i+)if(mi.sex=0)strcpy(nj.name,mi.name);nj.sex=mi.sex;nj.age=mi.age;n0.age+;Mage+=mi.age;j+;else strcpy(rk.name,mi.name);rk.sex=mi.sex;rk.age=mi.age;r0.age+;Fage+=mi.age;k+;Mage=Mage/n0.age;Fage=Fage/r0.age;cout女生的平均年龄是:Mage男生的平均年龄是:Fageendl;return 1;void print(STD*m)for(int i=1;inext=q-next;q-next=p;尾插法:指针变量 q 始终指向尾结点,p 指针开辟单元,生成结 点:q-next=p;q=p;插入:p 所指向结点的后面插入新结点 s 所指结点 s-next=p-next;p-next=s;删除:p,q 指向相邻结点,q 所指结点是 p 所指结点的后继,删除 q 所指结点,p-next=q-next;遍历:p=p-next;实验名称:实验二 栈、列队、递归程序设计 栈和队列的基本操作【问题描述】编写一个算法,输出指定栈中的栈底元素,并使得原栈中的元素倒置。【基本要求】(1)正确理解栈的先进后出的操作特点,建立初始栈,通过相关操作显示栈底元素。(2)程序中要体现出建栈过程和取出栈底元素后恢复栈的入栈过程,按堆栈的操作规则打印结果栈中的元素。【实验步骤;】(4)运行 PC中的 Microsoft Visual C+程序,(5)点击“文件”“新建”对话窗口中“文件”“c+Source File”在“文件名”中输入“”在“位置”中选择储存路径为“桌面”“确定”,(6)输入程序代码,程序代码如下:#include#include#define MaxSize 100 typedef char ElemType;typedef struct ElemType dataMaxSize;int top;ame);x=s0.avg;while(lowsmid.avg)hight=mid-1;else low=mid+1;for(k=0;klow-1;k+)strcpy(sk.name,sk+1.name);sk.avg=sk+1.avg;printf(%d,low);strcpy(slow-1.name,y);slow-1.avg=x;void main()Struct student aN=caozh,96,cheng,95,zhao,93,wang,92,chen,91;struct student stuN;int i;for(i=0;iN;i+)stui+1=ai;printf(初始%d 位同学的信息表n,MAX);1 2 5 4 3 printf(排名 姓名 平均分数n);for(i=1;i=N;i+)printf(%d:%6s%3.2fn,i,stui.name,stui.avg);printf(n);printf(n);printf(请输入学生的姓名:);scanf(%s,stu0.name);printf(n);printf(请输入平均成绩:);scanf(%f,&stu0.avg);printf(n);insort(stu,N);printf(折半排序后同学的信息表n,MAX);printf(排名 姓名 平均分数n);for(i=0;i=N;i+)printf(%d:%6s%3.2fn,i+1,stui.name,stui.avg);printf(n);程序运行结果如下:实验 二叉排序树的建立 设计程序代码如下:#include#include#define MAX 5 typedef struct Bnode int key;struct Bnode*left;struct Bnode*right;Bnode;Bnode*btInsert(int x,Bnode*root);void Inorder(Bnode*root);void main()int i;int aMAX=60,40,70,20,80;Bnode*root=NULL;printf(按关键字序列建立二叉排序树n);for(i=0;iMAX;i+)printf(%d ,ai);printf(n);for(i=0;ikey=x;p-right=p-left=NULL;if(root=NULL)root=p;return p;q=root;while(flag=0)if(q-keyx)if(q-left!=NULL)q=q-left;else q-left=p;flag=1;else if(q-right!=NULL)q=q-right;else q-right=p;flag=1;return root;void Inorder(Bnode*root)if(root!=NULL)Inorder(root-left);printf(%d,root-key);Inorder(root-right);程序运行结果如下:实验名称:实验六 排序 泡沫法排序的改进算法【问题描述】某班学生成绩信息表中每个学生的记录包括各门功课的成绩和平均成绩,以及按平均成绩的排名等信息,要求从键盘输入每个学生各门功课的成绩,计算出平均成绩,按平均成绩由高到低对信息的记录重新排序,并定出每位同学的名次,打印排序后的信息表。【基本要求】(4)建立学生成绩信息表,计算平均成绩。(5)用泡沫法对平均成绩排序,程序中要求一旦序列被排好序就结束相应排序操作。【测试数据】自行设计【实验提示】(1)用结构数组存放学生成绩信息表。(2)在某趟泡沫中没有发生元素间的交换则说明已排好序 堆排序【问题描述】阅读筛选和建堆的程序,针对某一个待排序的序列,通过人工跟踪程序的执行,完成排序的全过程【基本要求】(1)掌握建堆、筛选的基本原理和算法步骤。(2)写出主函数,试运行堆排序的程序。(3)掌握堆排序的算法程序,能针对实例按步骤人工完成建堆和排序的过程。【测试数据】自行设计。【实验提示】(1)筛选是建堆的基本算法。(2)把要排序序列看成一棵完全二叉树,用循环方式从最后一个非叶结(设序号为 k)开始,逐次对序号为 k,k-1,的结点,直至根结点调用筛选算法,完成建堆。(3)不断通过堆顶元素与堆中最后一个元素的交换并筛选,完成排序。实验报告内容:实验 冒泡法排序的改进 设计程序代码如下:#include#include#define MAX 3 struct student char name10;float cs;float ms;float es;float avg;void sort(struct student s,int n);void sort(struct student s,int n)struct student temp;int i,j;for(i=1;in;i+)for(j=0;jn-i;j+)if(sj.avgsj+1.avg)temp=sj;sj=sj+1;sj+1=temp;void main()struct student stuMAX;int i;printf(请输入%d 位同学的姓名和各科成绩n,MAX);for(i=0;iMAX;i+)printf(请输入第%d 位学生的姓名:,i+1);scanf(%s,stui.name);printf(n);printf(语文分数:);scanf(%f,&stui.cs);printf(n);printf(数学分数:);scanf(%f,&stui.ms);printf(n);printf(英语分数:);scanf(%f,&stui.es);printf(n);stui.avg=(stui.cs+stui.ms+stui.es)/3;sort(stu,MAX);printf(排名 姓名 语文 数学 外语 平均分数n);for(i=0;iMAX;i+)printf(%d:%6s%3.2f%3.2f%3.2f%3.2fn,i+1,stui.name,stui.cs,stui.ms,stui.es,stui.avg);程序运行结果如下:实验 堆排序 设计程序代码如下:#include#define N 8 struct NODE int date;void heapshift(struct NODE a,int i,int n)struct NODE temp;int j;temp=ai;j=2*i;while(jn)if(j+1aj+1.date)j+;if aj.date)ai=aj;i=j;j=2*i;else break;ai=temp;void heapsort(struct NODE a,int n)int i;struct NODE temp;for(i=n/2;i=1;i-)heapshift(a,i,n);for(i=n;i1;i-)temp=a1;a1=ai;ai=temp;heapshift(a,1,i-1);void main()struct NODE bN=40,80,65,100,14,30,55,50;struct NODE aN;int i;printf(初始数据序列:);for(i=0;iN;i+)ai+1.date=bi.date;for(i=1;i=N;i+)printf(%d ,ai.date);printf(n);printf(n);heapsort(a,N);printf(堆排序后的数据序列:);for(i=1;i=N;i+)printf(%d ,ai.date);printf(n);程序运行结果如下:

    注意事项

    本文(电大《数据结构》实验报告.pdf)为本站会员(l***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

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

    收起
    展开