⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ds62习.htm

📁 这是清华大学所用的数据结构的电子版教材
💻 HTM
字号:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>数 据 结 构</title>
<meta name="Microsoft Theme" content="hounk 010">
</head>

<body background bgcolor="#000099" text="#CCCC99" link="#FF9900" vlink="#996600" alink="#FF3300">

<!--mstheme--><font face="宋体"><p:colorscheme
 colors="#0000FF,#FFFFFF,#000000,#FFCC66,#00FFFF,#3366FF,#FF0033,#FFFF00"/>
<p class="MsoNormal"><b><span lang="EN-US" style="font-family:宋体"><font size="5" color="#FFFFFF"><span style="mso-spacerun: yes; font-family: 宋体">&nbsp;</span>6.22 
二叉树的遍历算法可写为通用形式。例如,通用的中序遍历为:<o:p>
</o:p>
</font></span></b></p>
<p class="MsoNormal" style="text-indent: 0; margin-right: 0; margin-top: 0; margin-bottom: 0"><b><span lang="EN-US" style="font-family:宋体"><font size="5" color="#FFFFFF">void 
Inorder(BinTree T,void(*Visit)(Datatype x))<o:p>
</o:p>
</font></span></b></p>
<p class="MsoNormal" style="text-indent: 0; margin-right: 0; margin-top: 0; margin-bottom: 0"><b><span lang="EN-US" style="font-family:宋体"><font size="5" color="#FFFFFF">{ 
if (T)<o:p>
</o:p>
</font></span></b></p>
<p class="MsoNormal" style="text-indent: 0; margin-right: 0; margin-top: 0; margin-bottom: 0"><font color="#FFFFFF"><b><span lang="EN-US" style="font-family:宋体"><font size="5"><span style="mso-spacerun: yes; font-family: 宋体">&nbsp;</span></font></span></b><span lang="EN-US" style="font-family:宋体"><b><font size="5">{Inorder(T-&gt;lchild,Visit);<span style="mso-spacerun: yes; font-family: 宋体">&nbsp;&nbsp; 
</span>/*遍历左子树*/<o:p>
</o:p>
</font></b></span></font></p>
<p class="MsoNormal" style="text-indent: 0; margin-right: 0; margin-top: 0; margin-bottom: 0"><font color="#FFFFFF"><b><span lang="EN-US" style="font-family:宋体"><font size="5"><span style="mso-spacerun: yes; font-family: 宋体">&nbsp;&nbsp; 
</span></font></span></b><span lang="EN-US" style="font-family:宋体"><b><font size="5">Visit(T-&gt;data);<span style="mso-spacerun: yes; font-family: 宋体">&nbsp; 
</span>/*通过函数指针调用它所指的函数来访问结点*/<o:p>
</o:p>
</font></b></span></font></p>
<p class="MsoNormal" style="text-indent: 0; margin-right: 0; margin-top: 0; margin-bottom: 0"><font color="#FFFFFF"><b><span lang="EN-US" style="font-family:宋体"><font size="5"><span style="mso-spacerun: yes; font-family: 宋体">&nbsp;&nbsp; 
</span></font></span></b><span lang="EN-US" style="font-family:宋体"><b><font size="5">Inorder(T-&gt;rchild,Visit);<span style="mso-spacerun: yes; font-family: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</span>/*遍历右子树*/<o:p>
</o:p>
</font></b></span></font></p>
<p class="MsoNormal" style="text-indent: 0; margin-right: 0; margin-top: 0; margin-bottom: 0"><font color="#FFFFFF"><b><span lang="EN-US" style="font-family:宋体"><font size="5"><span style="mso-spacerun: yes; font-family: 宋体">&nbsp; 
</span></font></span></b><span lang="EN-US" style="font-family:宋体"><b><font size="5">}<o:p>
</o:p>
</font></b></span></font></p>
<p class="MsoNormal" style="text-indent: 0; margin-right: 0; margin-top: 0; margin-bottom: 0"><b><span lang="EN-US" style="font-family:宋体"><font size="5" color="#FFFFFF">}<o:p>
</o:p>
</font></span></b></p>
<p class="MsoNormal" style="text-indent:31.5pt"><span style="font-family:宋体"><b><font size="5" color="#FFFFFF">其中<span lang="EN-US">Visit是一个函数指针,它指向形如void 
f(DdataType x)的函数。因此我们可以将访问结点的操作写在函数f中,通过调用语句Inorder(root,f)将f的地址传递给Visit,来执行遍历操作。请写一个打印结点的数据的函数,通过调用上述算法来完成书中6.3节的中序遍历。</span></font></b></span><span lang="EN-US" style="font-family:宋体"><o:p>
</o:p>
</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体"><b><font size="5" color="#FFFFFF">6.23 
以二叉链表为存储结构,分别写出求二叉树结点总数及叶子总数的算法。</font></b><o:p>
</o:p>
</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体"><b><font size="5" color="#FFFFFF">6.24 
以二叉链表为存储结构,分别写出求二叉树高度及宽度的算法。所谓宽度是指在二叉树的各层上,具有结点数最多的那一层上的结点总数。<o:p>
</o:p>
</font></b></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体"><font size="5" color="#FFFFFF"><b>6.25 
以二叉链表为存储结构,写一算法交换各结点的左右子树。</b></font></span><span lang="EN-US" style="font-family:宋体"><o:p>
</o:p>
</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体"><font size="5" color="#FFFFFF"><b>6.26 
以二叉表为存储结构,写一个拷贝二叉表的算法 (BinTree 
root,BinTree *newroot),其中新树的结点是动态申请的,</b></font><o:p>
</o:p>
</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体"><font size="5" color="#FFFFFF"><b>6.27 
以二叉树表为存储结构,分别写处在二叉树中查找值为x的结点在树中层数的算法。</b></font><o:p>
</o:p>
</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体"><b><font size="5" color="#FFFFFF">6.28一棵n个结点的完全二叉树以向量作为存储结构,试写一非递归算法实现对该树的前序遍历。</font></b><o:p>
</o:p>
</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体"><b><font size="5" color="#FFFFFF">6.29 
以二叉树表为存储结构,写一算法对二叉树进行层次遍历(定义见习题6.13)。提示:应使用队列来保存各层的结点。</font></b><o:p>
</o:p>
</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体"><b><font size="5" color="#FFFFFF">6.30 
以二叉树表为存储结构,写一算法用括号形式(keyLT,RT)打印二叉树,其中key是根结点数据,LT和RT分别是括号形式的左右子树。并且要求:空树不打印任何信息,一给结点x的树打印形式是x,而不应是(x,,)d的形式。</font></b><o:p>
</o:p>
</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体"><b><font size="5" color="#FFFFFF">6.31以线索链表为存储结构,分别写出在前序线索树中查找给定结点*p的后继,以及在后序线索树中查找*p的后序前趋的算法。</font></b><o:p>
</o:p>
</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体"><span style="mso-spacerun: yes"><font size="5" color="#FFFFFF"><b>&nbsp;</b></font></span><font size="5" color="#FFFFFF"><b>6.32<span style="mso-spacerun: yes">&nbsp; 
</span>完成6.6.1 节算法CreateHuffmanTree中调用的三个函数:InputWeight,SelecMin和InitHuffmanTree.</b></font><o:p>
</o:p>
</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体"><b><font size="5" color="#FFFFFF">6.33 
分别写出对文件进行哈夫谩码的算法,以及对编码文件进行解码的算法。为简单起见,可以假设文件存放在一个字符向量。</font></b></span></p>
<!--mstheme--></font>

</body>

</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -