ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

多叉树转二叉树

2022-01-27 12:05:27  阅读:180  来源: 互联网

标签:结点 转换 第一个 多叉树 儿子 二叉树


多叉树的定义
多叉树即为子结点有任意个的树,而在转换时所涉及的多叉树是一棵有序的多叉树,也就是其子结点的顺序是不能够随便交换的。

二叉树的定义
二叉树是每个结点最多有两个后件,且子树有左右之分(次序不能任意颠倒)。

多叉树转二叉树的作用
在用数组等表示或保存多叉树时,会浪费存储的空间,而且由于树中每个结点的度各不相同,在搜索过程中会比较的困难。而二叉树相对于多叉树便有了这些方面的优势,能够节省浪费的存储空间,又能使搜索变得简便快捷。因此可以通过将多叉树转换成为二叉树从而实现优化。

转换规则
将一棵多叉树转换成二叉树,我们遵循的原则是:左儿子,右兄弟

算法描述:将多叉树的第一个儿子结点作为二叉树的左结点,将其兄弟结点作为二叉树的右结点。

假设多叉树为T,新转化的二叉树为\(K\)

  • \(T\)中的结点与\(K\)中的结点一一对应。
  • \(T\)中的某个结点\(N\)的第一个子结点为\(N_1\),则\(K\)中\(N_1\)为\(N\)的左儿子结点
  • \(T\)中的某个结点\(N\)的第\(i\)个子结点记为\(N_i\)(除第一个子结点),则\(K\)中\(N_i\)为\(N_{i-1}\)的右儿子结点(\(N_2\)为\(N_1\)的右儿子结点,\(N_3\)为\(N_2\)的右儿子结点)

转换示意图

标签:结点,转换,第一个,多叉树,儿子,二叉树
来源: https://www.cnblogs.com/littlehb/p/15849333.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有