77范文网 - 专业文章范例文档资料分享平台

《数据结构——用C语言描述》+课后题答案(5)

来源:网络收集 时间:2019-03-28 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

{ if (p->ltag==1) return(p->rchild); // 左标记为1时,若p的右子树非空,p的右子树的根p->rchild为p的后继;若右子树为空,p->rchild指向后继

else return(p->lchild); // 左标记为0时,p的左子女p->lchild为p的后继 . } // 算法结束

6.18 bitree *search(b:tree *p)

//在后序线索二叉树中查找给定结点的后序前驱的算法

{ if(p->rtag==0) return(p->rchild); //p有右子女时,其右子女p->rchild是p的后序前驱 else return(p->lchild);

//p的左标记为0,左子女p->lchild是后序前驱, 否则,线索p->lchild指向p的后序前驱 } 6.19

前序序列:ABCDEFGHIJKLMPQRNO 后序序列:BDEFCAIJKHGQRPMNOL 6.21

F D P E J Q K R O N I B A G L C H M

6.22

7,19,2,6,32,3,21,10其对应字母分别为a,b,c,e,f,g,h。

哈夫曼编码:a:0010

b:10 c:00000 d:0001 e:01 f:00001 g:11 h:0011

第七章图(参考答案)

7.1(1)邻接矩阵中非零元素的个数的一半为无向图的边数;

(2)A[i][j]= =0为顶点,I 和j无边,否则j和j有边相通; (3)任一顶点I的度是第I行非0元素的个数。 7.2(1)任一顶点间均有通路,故是强连通; (2)简单路径 V4 V3 V1 V2; (3) 0 1 ∞ 1 ∞ 0 1 ∞ 1 ∞ 0 ∞ ∞ ∞ 1 0 邻接矩阵 V1 V2 V3 V4 邻接表

V4 | V3 |^ V1 | ^ V2 | ^ V3 |^

V1 V2 V3 V4 逆邻接表

7.3(1)邻接表 V1 V2 V3 V4 V5 V6 5 | 6 | 5 | 5 | 3 | 5 | 3 | 1 | ^ 4 | 3 | 1 | 4 | 1 | ^ 6 | 4 | 2 | 1 | ^ 5 | ^ 1 | ^ 4 | 6 | 2 | ^ V1 |^ V3 |^ V1 |^ V4 | ^ V2 | ^ (2)从顶点4开始的DFS序列:V5,V3,V4,V6,V2,V1

(3)从顶点4开始的BFS序列:V4,V5,V3,V6,V1,V2 7.4(1)① adjlisttp g; vtxptr i,j; //全程变量 ② void dfs(vtxptr x)

//从顶点x开始深度优先遍历图g。在遍历中若发现顶点j,则说明顶点i和j间有路径。 { visited[x]=1; //置访问标记 if (y= =j)

{ found=1;exit(0);}//有通路,退出

else { p=g[x].firstarc;//找x的第一邻接点 while (p!=null)

{ k=p->adjvex;

if (!visited[k])dfs(k); p=p->nextarc;//下一邻接点 }

}

③ void connect_DFS (adjlisttp g)

//基于图的深度优先遍历策略,本算法判断一邻接表为存储结构的图g种,是否存在顶点i

//到顶点j的路径。设 1<=i ,j<=n,i<>j.

{ visited[1..n]=0;found=0;

scanf (&i,&j); dfs (i);

if (found) printf (” 顶点”,i,”和顶点 ”,j,”有路径 ”);

else printf (” 顶点”,i,”和顶点 ”,j,”无路径 ”); }// void connect_DFS (2)宽度优先遍历

全程变量,调用函数与(1)相同,下面仅写宽度优先遍历部分。 void bfs(vtxptr x) //

{ initqueue(q);enqueue(q,x); while (!empty(q));

{ y=delqueue(q); if (y= =j)

{ found=1;exit(0);}//有通路,退出 else {p=g[x].firstarc;//第一邻接点 while (p!=null) {k=p->adjvex;

if (! Visted[k]) enqueue(q,k); p=p->nextarc }

}// if(y= =j)

}//while(!empty(q))

7.5。假定该有向图以邻接表存储,各顶点的邻接点按增序排列 DFS序列:V1,V3,V6,V7,V4,V2,V5,V8

BFS序列:V1,V3,V4,V6,V7,V2,V5,V8

DFS森林 BFS森林 V1 V3 V4 V6 V7

7.6简单回路指起点和终点相同的简单路径。算法基本思想是利用图的遍历,以顶点VK开始,若遍历中再通到VK,则存在简单回路,否则不存在简单回路。 Adjlisttp g ; visited[1..n]=0; Int found =0;//全程变量

Int dfs(btxptr x)

//从k顶点深度优先遍历图g,看是否存在k的简单回路 { visited[x]=1;

V2 V1 V2

V3 V4 V5 V5 V6

V8

V7

V8

p=g[x].firstarc;

while(p!=null) { w=p->adjvex; if(w= =k)

{ found=1;exit(0);}//有简单回路,退出 if (!visited[k] ) dfs(w ); p=p->nextarc; }//while(p!=null) }// dfs

7.7 (1)PRIM算法的最小生成树

2 a c 2 a a d a 1 c b 2 b 2 2 b 2 d a d b 2 e b 2 2 d 1 c e b 2 a 1 c f 1 h c d 2 2 e 2 b 2 2 1 e g 1 f 1 a d 1 1 1 a 1 1 1 h

(2)KRUSKAL算法的最小生成树

d c 1

1 c 1 e g 2 b 2 2 e g a d 1 1 1 a h

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库《数据结构——用C语言描述》+课后题答案(5)在线全文阅读。

《数据结构——用C语言描述》+课后题答案(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/548681.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: