多叉树转二叉树
作者:互联网
多叉树的定义
多叉树即为子结点有任意个的树,而在转换时所涉及的多叉树是一棵有序的多叉树,也就是其子结点的顺序是不能够随便交换的。
二叉树的定义
二叉树是每个结点最多有两个后件,且子树有左右之分(次序不能任意颠倒)。
多叉树转二叉树的作用
在用数组等表示或保存多叉树时,会浪费存储的空间,而且由于树中每个结点的度各不相同,在搜索过程中会比较的困难。而二叉树相对于多叉树便有了这些方面的优势,能够节省浪费的存储空间,又能使搜索变得简便快捷。因此可以通过将多叉树转换成为二叉树从而实现优化。
转换规则
将一棵多叉树转换成二叉树,我们遵循的原则是:左儿子,右兄弟。
算法描述:将多叉树的第一个儿子结点作为二叉树的左结点,将其兄弟结点作为二叉树的右结点。
假设多叉树为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