数据结构答疑2014.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2. 请给出上图的先序和后序遍历结点序列。 ABDEHCFIGJ DHEBIFJGCA F B A D E G H I J C 3. 请 给出上图的二叉树形态。 A B D E F C G I H J A B D E F C G I H J 4.写出下图的拓扑序列. A C B D E F A B C D E F 5.使用普里姆算法(或克鲁斯卡尔算法)构造出下图的一棵最小生成树。 1 2 4 3 5 6 1 6 3 5 5、 2 6 6 4 5 1 2 4 3 5 6 6.设下图以邻接矩阵形式存储,指出从顶点1出发的深度优先遍历和广度优先遍历序列。 深度优先遍历和广度优先遍历序列均是12345 1 2 4 5 3 7.已知一关键字序列为{70,83,100,65,10,32,7,9},请给出采用直接插入排序法对该序列作升序排序时的每一趟的结果。 初始:(70),83,100,65,10,32,7,9 1趟:(70,83),100,65,10,32,7,9 2趟:(70,83,100),65,10,32,7,9 3趟:(65,70,83,100),10,32,7,9 4趟:(10,65,70,83,100),32,7,9 5趟:(10,32,65,70,83,100),7,9 6趟:(7,10,32,65,70,83,100),9 7趟:(7,9,10,32,65,70,83,100) 8.已知一关键字序列为{17,18,60,40,7,32,,73,65,85},请给出采用直接气泡排序法对该序列作升序排序时的每一趟的结果。 初始:17,18,60,40,7,32,,73,65,85 1趟:17,18,40,7,32,60,65,73,85 2趟:17,18,7,32,40,60,65,73,85 3趟:17,7,18,32,40,60,65,73,85 4趟:7,17,18,32,40,60,65,73,85 5趟:7,17,18,32,40,60,65,73,85 第5趟无元素交换,则排序结束。 9.已知有一关键字序列为{13,15,6,10,20,8,3, 19},现采用简单选择排序的方法进行排序(按照升序排列),请给出每一趟排序的结果。 (四)编写算法 1.已知一个顺序表A,其中的元素按值非递减有序排列,编写一个函数插入一个元素x后保持该顺序表仍按非递减有序排列。 void insert(listtp A, int n, x) { int i, j; if(x=A[n-1]) A[n]=x else { i=0; while(x=A[i]) i++; for(j=n-1; j=i; j--) A[j+1]=A[j]; A[i]=x; n++; } 2.编写一个函数将一个顺序表A(有n个元素,且任何元素均不为0)分拆成两个顺序表,使A中大于0的元素存放在B中,小于0的元素存放在C中。 void ret(listtp A, int n) { listtp B, C; int p, q; p=0;q=0; for(int i=0; i=n-1; i++) { if(A[i]0) { B[p]=A[i]; p++;} else {C[q]=A[i]; q++;} } } 3.编写一个链接两个单链表的算法。设有链表A和B,B链表链接在A链表之后,产生新链表C,原链表不破坏。 linklist *merge(linklist *headA,linklist *headB) { linklist *headC; headC=(struct lnode *)malloc(sizeof(struct lnode)); headC-next=null; lnode *p,*q; p=headA-next; r=headC; while(p!=null) { s=(struct lnode *)malloc(sizeof(struct lnode)); s-data=p-data; s-next=null; r-next=s; r=s; p=p-next; } p=headB-next; while(p!=null) { s=(struct lnode *)malloc(sizeof(struct lnode));

文档评论(0)

整理王 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档