二叉树、前序遍历、中序遍历和后序遍历
1定义
1.1树的定义及特点
定义:树是由结点或顶点和边组成的(可能是非线性的)且不存在着任何环的一种数据结构。没有结点的树称为空(null或empty)树。一棵非空的树包括一个根结点, 还(很可能)有多个附加结点,所有结点构成一个多级分层结构。
特点:树状图是一种数据结构, 它是由n (n>=0)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像y棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:
1.2二叉树的定义
二叉树:每个节点最多含有两个子树的树称为二叉树。
1.3二叉树的性质
二叉查找树(英语:Binary Search Tree),也称为 二叉搜索树、有序二叉树(Ordered Binary Tree)或排序二叉树(Sorted Binary Tree),是指一棵空树或者具有下列性质的二叉树:
- 若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值;
- 若任意节点的右子树不空,则右子树上所有节点的值均大于它的根节点的值;
- 任意节点的左、右子树也分别为二叉查找树;
- 没有键值相等的节点。
- 二叉查找树相比于其他数据结构的优势在于查找、插入的时间复杂度较低。为 O(\log n)O(logn)。二叉查找树是基础性数据结构,用于构建更为抽象的数据结构,如集合、多重集、关联数组等。
2基本概念
术语 | 概念 |
---|---|
根节点 | 树的最顶端 |
子节点 | 远离根节点后的一个节点连接另一个节点 |
叶子节点 | 没有子节点的结点 |
边 | 两个节点之间的连线 |
路径 | 节点和边连接路径的序列 |
层级 | 该节点到根节点的最长路径的边的总和+1 |
深度 | 该节点到根节点的最长路径的边的总和 |
3遍历方式
3.1先序遍历
若树为空,则空操作返回。否则,先访问根节点,然后前序遍历左子树,再前序遍历右子树。(W)型(中左右)
3.1中序遍历
若树为空,则空操作返回。否则,从根节点开始(注意并不是先访问根节点)
,中序遍历根节点的左子树,然后是(访问根节点,最后中序遍历根节点的右子树。(M)型,(左中右)
3.3后序遍历
若树为空,则空操作返回。否则,从左到右先叶子后节点的方式遍历访问左右子树,最后访问根节点。(左右中)逆时针型(左右 中)