软考
APP下载

二叉树类

一. 什么是二叉树

二叉树是计算机科学中一种重要的数据结构,它由节点(Node)、左子树(LeftSubtree)和右子树(RightSubtree)组成,且左子树和右子树也是二叉树。当所有节点都不存在左子树和右子树时,称其为叶子节点(LeafNode)。二叉树可以被用于搜索、排序和遍历数据等操作,常被用于编写算法。

二. 二叉树的分类

1. 完全二叉树

如果一棵二叉树除了最后一层节点上的孩子节点个数可以少于2个之外,其它层的节点都是满的,那么这棵二叉树被称为完全二叉树。

2. 平衡二叉树

平衡二叉树是很多编程语言中的数据结构,它是一种自平衡二叉搜索树, 具有以下性质:

- 是一棵空树,或者它的左右两个子树的高度差的绝对值不超过1,且左右两个子树都是一棵平衡二叉树。

- 一棵高度为h的平衡二叉树,其节点个数越多,其越接近于2的(h+2)次幂减1。

3. 二叉查找树

二叉查找树(BST,Binary Search Tree),也称二叉搜索树或二叉排序树,是一种特殊的二叉树,它的所有左子树上的节点都小于它的根节点,所有右子树上的节点都大于它的根节点。

三. 二叉树的遍历方式

遍历(binary tree traversal)即按照一定规律逐个访问二叉树中所有结点,每个结点最多会被访问一次。常用的二叉树遍历方式有:

1. 前序遍历(preorder traversal):首先访问根节点,接着递归地访问左子树和右子树。

2. 中序遍历(inorder traversal):首先递归地访问左子树,然后访问根节点,最后递归地访问右子树。

3. 后序遍历(postorder traversal):首先递归地访问左子树和右子树,最后访问根节点。

四. 二叉树的应用

1. 操作系统中进程(任务)调度优化。

2. 代数累加器(Algorithmic accumulator)的设计。

3. 路径查找(Pathfinding)。

4. 机器学习中的决策树算法等。

5. 单纯形算法(Simplex algorithm)中,求解线性规划问题的时候,通过改变线性规划的边界条件和目标来改变可行解域,进而找最优解,就可以用二叉树结构来实现循环。

备考资料 免费领取:软件设计师报考指南+考情分析+思维导图等 立即下载
真题演练 精准解析历年真题,助你高效备考! 立即做题
相关阅读
软件设计师题库