欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    数据结构实验指导书Word文件下载.docx

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

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

    数据结构实验指导书Word文件下载.docx

    1、 if (L-length= = -1) exit () ; for(j=i+1; jlength ;listj-1=L-length- ;实验二、树型结构的遍历树的遍历是树的算法中最具有典型的,它的特点为递归,树的其它算法如:求树的高度、求叶子数等,都同该算法同出一辙,另外树的遍历算法应用比较广泛。编写前序遍历、中序遍历、后序遍历二叉树的程序。1、掌握二叉树的特点及其存储方式。2、掌握二叉树的创建和显示方法。3、掌握二叉树遍历的基本方法:前序(DLR)、中序(LDR)、后序(LRD)按下图的二叉树进行操作。1、 按上图建立二叉树,输入方法为:请输入按先序建立二叉树的结点序列: 说明:0代表后

    2、继结点为空,请逐个输入,按回车键输入下一个结点。 请输入根结点:a请输入a结点的左子结点: b请输入b结点的左子结点: d请输入d结点的左子结点: 0请输入d结点的右子结点:请输入b结点的右子结点:请输入a结点的右子结点: c请输入c结点的左子结点:e请输入e结点的左子结点:请输入e结点的右子结点:请输入c结点的右子结点: f请输入f结点的左子结点:请输入f结点的右子结点:2、 检查前序、中序、后序算法的正确。例:该二叉树前序遍历序列为:a b d c e f 该二叉树中序遍历序列为:d b a e c f该二叉树后序遍历序列为:d b e f c a 3、 遍历算法(递归过程)(1)前序遍历

    3、 若二叉树为空,遍历结束。否则A、访问根结点。B、前序遍历根结点的左子树。C、前序遍历根结点的右子树。 void preorder(BT *T) if (T!=NULL) printf(“%c”, T-data) ; preorder(T-lchild) ;rchild) ;(2)中序遍历A、中序遍历根结点的左子树。B、访问根结点。C、中序遍历根结点的右子树。 preorder(T- printf(“%c”, T-preorder(T-(3)后序遍历若二叉树为空,遍历结束。A、 后序遍历根结点的左子树。B、 后序遍历根结点的右子树。C、 访问根结点实验三、图型结构算法及应用图有二个存储结构:邻

    4、接矩阵和邻接表,邻接矩阵的实验可以借鉴于实验一,邻接表的实验类似于单链表,图是最复杂的一种数据结构,掌握它有一定的代表意义。邻接表表示图,并进行深度优先遍历了解什么是邻接表,什么是深度优先遍历1、 定义数据类型#define MAX_VERTEX_NUM 20 /最大顶点数 #define MAX_EDGE_NUM 40 /最大边数 int visited MAX_VERTEX_NUM; typedef VertexType ; /顶点数据类型 struct ArcNode adjvex; weight; *nextarc; ArcNode; VNode data; *firstarc; VN

    5、ode,AdjListMAX_VERTEX_NUM; AdjList vertices; vexnum,arcnum; kind; ALGraph;2、 创建一个图void CreateDG(ALGraph &G) i,j,k; *p; coutG.vexnum;cout边数:G.arcnum; for(i=0;ii+) G.verticesi.data=i; G.verticesi.firstarc=NULL; for(k=0;kk+) 请输入第k+1j; p=(ArcNode*)malloc(sizeof(ArcNode); p-adjvex=j;nextarc=G.verticesi.f

    6、irstarc; G.verticesi.firstarc=p;3、 输出图 Disp(ALGraph G) i,j;输出图为: p=G.verticesi.firstarc; j=0; while(p!=NULL) (,p-adjvexnextarc; j=1; if(j=1) 4、 图的深度优先遍历 dfs(ALGraph G,int v) /深度优先遍历 vadjvex) dfs(G,p-adjvex); return void dfs1(ALGraph i; if(visitedi=0) dfs(G,i);5、 主函数 main() ALGraph G; CreateDG(G); v;

    7、 Disp(G);输入顶点:v;深度优先序列: dfs1(G);实验四、查找算法应用查找是日常经常使用的一种操作,掌握各种数据结构的查找算法有十分重要的意义。通过本次实验掌握顺序查找、树表查找、散列表查找的基本思想及存储、运算的实现。设有关键字序列k= 5 ,14 ,18 ,21 ,23 ,29 ,31 ,35 查找key=21的数据元素1、从键盘输入上述8个整数,存放在数组bub8中,并输出其值。2、从键盘输入21,查找是否存在该数据元素,若存在,则输出该数据元素在表中位置,否则给出查找失败的信息。2、 从键盘输入25,查找是否存在该数据元素,若存在,则输出该数据元素在表中位置,否则给出查找

    8、失败的信息。3、 具体算法int binarysearch(struct sstable stn+1 , elemtype k) int low=1 , high=1 ; while(low=high) mid=(low+high)/2 ; if(k= =stmid.key) return(mid) ; else if(k high 时,返回查找失败信息; /表空,查找失败3、low =high , mid = (low+high)/2 / 取中点 (1) 若key bubmid , low=mid+1 ; (3) 若key = bubmid,返回数据元素在表中位置。实验五、排序算法应用掌握插

    9、入排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序及基数排序的基本思想及实现。将一组数据(97、49、65、76、49、13、38、27)进行大堆排序1、 只需要一个记录大小的辅助空间,每个待排序的记录仅占有一个存储空间2、 掌握堆的概念 什么是堆?n个元素的序列k1,k2,.,kn当且仅当满足下列关系时,称之为堆。关系一:ki=k2i 关系二:=k2i 1(i=1,2,.,n/2)3、堆排序要解决两个问题:a、如何由一个无序序列建成一个堆? b、如何在输出堆顶元素之后,调整剩余元素成为一个新的堆?sift(ListType &r,int k,int m) i=k;j=2*i;x=rk

    10、.key;finished=FALSE;t=rk;while(j=m)&(!finished) if (jrj 1.key) j ;if (x=rj.key)finished:=TRUE; else ri=rj;i=j;ri=t;HeapSort(ListType &r) for(i=n/2;0;i-) sift(r,i,n); for(i=n;1;i-)r1ri;sift(r,i,i-1)实验六、设计学生成绩管理系统这是一个综合性、设计性实验,是为了让大家将前面所学的知识点进行概括和总结,并能够解决实际的应用问题。利用前面所学到的知识设计出学生成绩管理系统合适的数据结构,并编程实现增加记录、

    11、删除记录、查找和排序功能。先复习链表结构、c语言的各种数据类型及操作语言的用法。熟练查找和排序的多种算法。1、 定义学生成绩的数据结构 struct nodeint number;/*学号*/char name10;/*姓名*/float yuwen;/*语文成绩*/float yingyu;/*英语成绩*/float shuxue;/*数学成绩 */struct node *next;2、 创建链表3、 增加学生资料,并且将所有学生资料按学号排序4、 查询学生成绩 struct *search2311(struct *head)/*函数search2311,功能:查询学生成绩*/struct

    12、 *p1,*p2;printf(输入要查询的学生的学号,);scanf(%d,&number);while(number!=0)if(head=NULL)printf(n没有任何学生资料!nreturn(head);-n|学号t|姓名t|语文t|英语t|数学t|n/*打印表格域*/p1=head;=p1-number&p1-next!p2=p1;p1=p1-next; if(number=p1-number) |%dt|%st|%.1ft|%.1ft|%.1ft|n,p1-number,p1-name,p1-yuwen,p1-yingyu,p1-shuxue);/*打印表格域*/%d不存在此学

    13、生!,number);已经退出了!5、 删除学生资料struct *del2311(struct *head)/*函数del2311,功能:删除学生资料*/int number;输入要删除的学生的学号(输入0时退出):getchar();=0)/*输入学号为0时退出*/*p1指向的不是所要找的首结点,并且后面还有结点*/p2=p1; /*p1后移一个结点*/*找到了*/ if(p1=head)head=p1-/*若p1指向的是首结点,把地二个结点地址赋予head*/p2-next=p1-/*否则将下一个结点地址 赋给前一结点地址*/删除:%dnn=n-1;/*找不到该结点*/输入要删除的学生的

    14、学号:#ifdef DEBUG #endif现在的学生数为:%d个!,n);6、 定义排序函数struct *taxis2311(struct *head) /*定义排序函数。此函数带回一个指向链表头的指针*/ struct *p,*max;int i,j,x;float fen;char t10;n没有任何学生资料,请先建立链表!/*链表为空*/max=p=head;for(i=0;80;i )*1按学生学号排序t2按学生姓名排序t3按语文成绩排序n4按英语成绩排序t5按数学成绩排序tn请选择操作:x);/*选择操作*/switch(x) /*用switch语句实现功能选择*/case 1

    15、:for(i=1;n;for(j=i 1;jif(max-numbernumber)k=max-number;max-number=p-number=k;/*交换前后结点中的学号值,使得学号大者移到后面的结点中*/scpy(t,max-name);scpy(max-name,p-scpy(p-name,t);/*交换前后结点中的姓名,使之与学号相匹配*/fen=max-yuwen;yuwen=p-yuwen=fen;/*交换前后结点中的语文成绩,使之与学号相匹配*/yingyu;yingyu=p-yingyu=fen;/*交换前后结点中的英语成绩,使之与学号相匹配*/shuxue;shuxue

    16、=p-shuxue=fen;/*交换前后结点中的数学成绩,使之与学号相匹配*/max=head;p=head;/*重新使max,p指向链表头*/print2311(head);break;/*打印值排序后的链表内容*/case 2 : for(i=1;if(scmp(max-name)0)/*scmp=字符串比较函数*/*scpy=字符串复制函数*/*交换前后结点中的姓名,使得姓名字符串的值大者移到后面的结点中*/ /*交换前后结点中的学号值,使之与姓名相匹配*/ fen=max-/*交换前后结点中的语文成绩,使之与姓名相匹配*/*交换前后结点中的英语成绩,使之与姓名相匹配*/*交换前后结点中的数学成绩,使之与姓名相匹配*/case 3 :for(j=i 1;max=p;yuwenyuwen)/*交换前后结点中的语文成绩,使得语文成绩高者移到后面的结点中*/*交换前后结点中的学号,使之与语文成绩相匹配*/scpy


    注意事项

    本文(数据结构实验指导书Word文件下载.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开