【李木华】二叉树的一般概念
来源:互联网 发布:wps office for mac 编辑:程序博客网 时间:2024/05/16 07:07
二叉树的定义
一棵二叉树(binary tree)有结点(node)的有限集合组成,这个集合或者为空(empty),或者有一个根节点(root)及两个棵不相交的二叉树组成,这两颗二叉树分别称为这个根结点的左子树(left subtree)和右子树(right subtree)。如下图如所示:
* 结点M的深度(depth)就是从根节点到M的路径长度。
* 树的高度(height)等于最深结点的深度加1。
* 任何深度为d的结点的层数(level)都为d。
* 根结点层数为0,深度也为0。
* 没有非空子树的结点称为叶结点(leaf)。至少有一个非空子树的结点称为分支结点或内部结点(internal node)。
* 满二叉树(full binary tree):满二叉树的每一个结点或者是一个分支结点,并恰好有两个非空子结点或者是叶结点。如下图:
- 完全二叉树(complete binary tree):从根结点起每一层从左至右填充。一棵高度为d的完全二叉树出了d-1层以外,每一层都是满的。底层叶结点集中在左边的若干位置上。如下图:
满二叉树定理:
- 定理一:非空满二叉树的叶结点数等于其分支结点数加1。
- 定理二:一棵非空二叉树空子树的数目等于其结点数目加1。
二叉树的ADT:
template<typename E>class BinNode{public: virtual ~BinNode() {} virtual E& element() = 0; //返回当前结点的值 virtual void setElement(const E&) = 0; //设置当前结点的值 virtual BinNode* left() const = 0; //返回左子结点 virtual void setLeft(BinNode*) = 0; //设置左子结点 virtual BinNode* right() const = 0; //返回右子结点 virtual void setRight(BinNode*) = 0; //设置右子节点 virtual bool isLeaf() = 0; //判断是否为叶结点};
遍历二叉树:
- 按照一定顺序访问二叉树的结点,称为遍历(traversal)。
- 对每个结点都进行一次访问并将其列出,称为二叉树节点的枚举(enumeration)。
- 遍历分为前序遍历、中序遍历和后续遍历。
以下图为例:
- 前序遍历(preorder traversal):先访问结点,然后访问其子节点。即ABDCEGFHI。
- 中序遍历(inorder traversal):先访问左子结点(包括整棵子树),然后访问该节点,最后访问右子节点(包括整棵子树)。即BDAGECHFI。
- 后序遍历(postorder traversal):先访问节点的子节点(包括它们的子树),然后再访问该节点。即DBGEHFICA。
Copyright© by 李木华
Date:2017.1.18
0 0
- 【李木华】二叉树的一般概念
- 二叉树的概念
- 类的一般概念
- 接口的一般概念
- Geeks 一般二叉树的LCA
- 二叉树的一些概念
- 二叉树 度的概念
- 二叉树的相关概念
- 二叉树度的概念
- 二叉树的相关概念
- 第一章 控制系统的一般概念
- 统计中位值的一般概念
- 一般树与二叉树的相互转换
- 树与二叉树的一些概念
- 树与二叉树的概念
- 二叉树的定义及其相关概念
- 二叉树的相关概念及性质
- Java基础 - 二叉树的概念
- VS2005(VC++)远程调试方法搜集
- Exception in thread "main" org.hibernate.TransactionException: Transaction not successfully started解
- codeforces 348 C. Subset Sums (暴力+技巧)
- Redux Thunk
- Android代码优化之去除未使用资源
- 【李木华】二叉树的一般概念
- Nginx启动时error while loading shared libraries: libcrypto.so.1.1
- 给 Gradle 初学者的 知识普及 http://mp.weixin.qq.com/s?__biz=MzA4NTQwNDcyMA==&mid=2650661971&idx=1&sn=3fb69537
- java保留后两位小数
- shell 监控服务器负载
- Ajax+jsp铺个界面
- 欢迎使用CSDN-markdown编辑器
- popupwindow的基本使用以及基本动画效果
- Android Stodio问题记录