二叉树总结

来源:互联网 发布:窗帘淘宝生意进货 编辑:程序博客网 时间:2024/05/20 01:45

百度百科-二叉树

轻松搞定所有二叉树题目

 

二叉树是每个节点最多有两个子树的有序树。二叉树常被用于实现二叉查找树和二叉堆。值得注意的是,二叉树不是树的特殊情形。在图论中,二叉树是一个连通的无环图,并且每一个顶点的度不大于2。有根二叉树还要满足根结点的度不大于2。有了根结点后,每个顶点定义了唯一的根结点,和最多2个子结点。

 

 二叉树是每个结点最多有两个子树的有序树。通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用作二叉查找树和二叉堆或是二叉排序树。二叉树的每个结点至多只有二棵子树(不存在出度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。 

 

辨析 

二叉树不是树的一种特殊情形,尽管其与树有许多相似之处,但树和二叉树有两个主要差别

1. 树中结点的最大度数没有限制,而二叉树结点的最大度数为2

2. 树的结点无左、右之分,而二叉树的结点有左、右之分

 

重要概念

 

(1)完全二叉树

      若设二叉树的高度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数第h层有叶子结点,并且叶子结点都是从左到右依次排布,这就是完全二叉树。

(2)满二叉树

      除了叶结点外每一个结点都有左右子叶且叶子结点都处在最底层的二叉树。

(3)深度

      二叉树的层数,就是深度。

 

 

遍历 

 遍历是对树的一种最基本的运算,所谓遍历二叉树,就是按一定的规则和顺序走遍二叉树的所有结点,使每一个结点都被访问一次,而且只被访问一次。由于二叉树是非线性结构,因此,树的遍历实质上是将二叉树的各个结点转换成为一个线性序列来表示。

 

遍历时,如果二叉树为空,空操作。

 

前序遍历递归解法:

     如果二叉树不为空,访问根节点,前序遍历左子树,前序遍历右子树

 

中序遍历递归解法

     如果二叉树不为空,中序遍历左子树,访问根节点,中序遍历右子树

 

后序遍历递归解法 

     如果二叉树不为空,后序遍历左子树,后序遍历右子树,访问根节点

0 0
原创粉丝点击