树,二叉树,森林间的转换方法

树,二叉树,森林间的转换方法

ID:42632563

大小:275.51 KB

页数:2页

时间:2019-09-18

树,二叉树,森林间的转换方法_第1页
树,二叉树,森林间的转换方法_第2页
资源描述:

《树,二叉树,森林间的转换方法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、树,二叉树,森林间的转换方法<1>将树转换为二叉树树中每个结点最多只有一个最左边的孩子(长子)和一个右邻的兄弟。按照这种关系很自然地就能将树转换成相应的二叉树。将一般树转化为二叉树的思路,主要根据树的孩子-兄弟存储方式而来,步骤是:①加线:在各兄弟结点之间用虚线相连。可理解为每个结点的兄弟指针指向它的一个兄弟。②抹线:对每个结点仅保留它与其最左一个孩子的连线,抹去该结点与其他孩子之间的连线。可理解为每个结点仅有一个孩子指针,让它指向自己的长子。③旋转:把虚线改为实线从水平方向向下旋转45℃,成右斜下方向。原树中实线成左斜下方向。这

2、样就树的形状成呈现出一棵二叉树。如下图:<2>二叉树转换为一般树此时的二叉树必须是由某一树(一般树)转换而来的没有右子树的二叉树。并非随便一棵二叉树都能还原成一般树。其还原过程也分为三步:①加线:若某结点i是双亲结点的左孩子,则将该结点i的右孩子以及当且仅当连续地沿着右孩子的右链不断搜索到所有右孩子,都分别与结点i的双亲结点用虚线连接。②抹线:把原二叉树中所有双亲结点与其右孩子的连线抹去。这里的右孩子实质上是原一般树中结点的兄弟,抹去的连线是兄弟间的关系。③进行整理:把虚线改为实线,把结点按层次排列。如图:<3>二叉树转换为森林将

3、一棵二叉树转化成森林,可按如下步骤进行:①抹线:将二叉树根结点与其右孩子之间的连线,以及沿着此右孩子的右链连续不继搜索到的右孩子间的连线抹掉。这样就得到了若干棵根结点没有右子树的二叉树。②将得到的这些二叉树用前述方法分别转化成一般树。<4>森林转换为二叉树森林是树的有限集合,如图3-55a所示。由上节可知,一棵树可以转换为二叉树(没有右子树),一个森林就可以转换为二叉树(没有右子树)的森林。将森林转换为二叉树的一般步骤为:①将森林中每棵子树转换成相应的二叉树。形成有若干二叉树的森林,如图3-55b所示。②按森林图形中树的先后次序,

4、依次将后边一棵二叉树作为前边一棵二叉树根结点的右子树,这样整个森林就生成了一棵二叉树,实际上第一棵树的根结点便是生成后的二叉树的根结点。下图将一个森林转化为一棵二叉树的示例:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。