数据结构课件2第6_7章作业.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课件2第6_7章作业

【 6.42】统计叶子结点数目 Status Leaves(BiTree T,int count) {//count的初值为0 if (T){ if (T-lchild==NULLT-rchild==NULL) count++; else { Leaves(T-lchild,count); Leaves(T-rchild,count); } } return OK; } 【 6.43】交换左右子树 Status exchange(BiTree T) { if (T){ exchange(T-lchild); exchange(T-rchild); T-lchild?T-rchild; } return OK; } 【 6.60 】 Status treeLeaves(CSTree T,int count) {//count的初值为0 if (T){ if (T-firstchild==NULL) count++; else treeLeaves(T-firstchild,count); treeLeaves(T-nextsibling,count); } return OK; } 【 6. 62 】求树的深度 int treeHight(CSTree T) { if (T==NULL) return 0; else { for (max=0,p=T-firstchild;p;p=p-nextsibling){ h=treeHight(p); if (hmax) max=h; } return max+1; } } 求每一棵子树的深度, 这棵树的深度为子树的最高深度+1 【 7.7 】求最小生成树 【 7.7 】求最小生成树 【 7.14 】 构造有向 图邻接表 Status CreateGraph(ALGraph G) { cinG.vexnumG.arcnum; for (i=0;iG.vexnum;i++){ //构造顶点信息 cinG.vertices[i].data; G.vertices[i].firstarc=NULL; } for (i=0;iG.arcnum;i++){ //构造弧信息 cinv1v2info; i=LocateVex(G,v1); j=LocateVex(G,v2); s=new ArcNode; s-adjvex=j; s-InfoType=info; s-nextarc=G.vertices[i].firstarc; G.vertices[i].firstarc=s; } } 【 7.22】 判断vi到vj是否有路径 int visited[0..G.vexnum-1]=false; Statuts DFS(ALGraph G,int Vi,int Vj) { if (Vi==Vj) return OK; visited[Vi]=true; for (w=FirstAdjVex(G,Vi);w=0;w=NextAdjVex(G,Vi,w)) if (!visited[w]) if (DFS(G,w,Vj)) return OK; return ERROR; } 【 7.27】判断从u到v是否存在长度为k的路径 Statuts DFS(ALGraph G,int u,int v,int k) { if (u==vk==0) return OK; if (k=0) return ERROR; visited[u]=true; for (w=FirstAdjVex(G,u);w=0;w=NextAdjVex(G,u,w)) if (!visited[w]) if (DFS(G,w,v,k-1)) return OK; visited[u]=false; return ERROR; } * 注意:考虑二叉树为空的情况。 注意:两个方向均需要递归。 a b c d e f g h 4 3 5 5 5 5 4 5 6 7 9 3 2 6 普里姆算法 a b c d e f g h 4 3 5 5 5 5 4 5 6 7 9 3 2 6 克鲁斯卡尔算法 关键:找到后算法立即停止递归。 *

文档评论(0)

wh90404 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档