对树的操作(二叉树)

简介: 对二叉树的遍历:   先序遍历:【先访问根节点】       先访问根节点,       再先序访问左子树,       再先序访问右子树;  ————递归关系   中序遍历:【中间访问根节点】       中序遍历左子树,       再访问根节点,       再中序遍历右子树;...

对二叉树的遍历:

  先序遍历:【先访问根节点】

      先访问根节点,

      再先序访问左子树,

      再先序访问右子树;  ————递归关系

  中序遍历:【中间访问根节点】

      中序遍历左子树,

      再访问根节点,

      再中序遍历右子树;  ————递归关系

  后序遍历:【最后访问根节点】

      先中序遍历左子树,

      再中序遍历右子树,

      再访问根节点;    ————递归关系

                          

根据序列还原二叉树: 

已知两种遍历序列求原始二叉树

  通过先序和中序 或者 中序和后序我们可以还原出原始的二叉树,但是通过 先序和后序 是无法还原原始的二叉树;

 示例:已知先序 和中序,求后序

  先序:ABCDEFGH  中序:BDCEAFHG

 思路:在先序中找到根节点A, 由中序可知:BDCE 是左子树, FHG是右子树(A的右边是右子树,A的左边是左子树);后面,类似推出来该树的结构;

树的应用:

  1、树是数据库中数据组织一种重要形式; 

  2、操作系统子父进程的关系本身就是一颗树,(进程树)

  3、面向对象语言中类的继承关系本身就是一颗树;

  4、赫夫曼树

 

  

相关文章
【霍罗维兹数据结构】二叉树前中后序遍历 | 层序遍历 | 复制二叉树 | 判断两个二叉树全等 | 可满足性问题
【霍罗维兹数据结构】二叉树前中后序遍历 | 层序遍历 | 复制二叉树 | 判断两个二叉树全等 | 可满足性问题
69 0
|
6月前
|
存储
二叉树链式结构的实现和二叉树的遍历以及判断完全二叉树
二叉树链式结构的实现和二叉树的遍历以及判断完全二叉树
53 1
|
6月前
|
存储 C++
二叉树的操作(C++实现)
二叉树的操作(C++实现)
|
6月前
|
机器学习/深度学习 C++
初阶数据结构之---二叉树链式结构(二叉树的构建,二叉树的前序,中序,后序和层序遍历,计算二叉树结点个数,第k层结点个数,叶子结点个数,判断是否为完全二叉树)
初阶数据结构之---二叉树链式结构(二叉树的构建,二叉树的前序,中序,后序和层序遍历,计算二叉树结点个数,第k层结点个数,叶子结点个数,判断是否为完全二叉树)
|
6月前
|
Serverless
二叉树的常见操作
二叉树的常见操作
|
6月前
|
算法 编译器 C语言
二叉树的创建、销毁、层序遍历与层序遍历的进阶、利用层序遍历判断二叉树是否是为完全二叉树
二叉树的创建、销毁、层序遍历与层序遍历的进阶、利用层序遍历判断二叉树是否是为完全二叉树
|
C语言
二叉树的相关操作
本文主要是针对C语言数据结构的二叉树的相关操作包括遍历、线索化等进行介绍。
10778 4
二叉树的相关操作
链式二叉树及相关操作(前,中,后,层序遍历)
链式二叉树及相关操作(前,中,后,层序遍历)
180 0
链式二叉树及相关操作(前,中,后,层序遍历)
二叉树——617. 合并二叉树
本专栏按照数组—链表—哈希—字符串—栈与队列—二叉树—回溯—贪心—动态规划—单调栈的顺序刷题,采用代码随想录所给的刷题顺序,一个正确的刷题顺序对算法学习是非常重要的,希望对大家有帮助
二叉树——617. 合并二叉树