news 2026/8/13 2:41:35

【数据结构】树的基本概念与二叉树定义

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【数据结构】树的基本概念与二叉树定义

考点频率:★★★★★(数据结构必考,选择题常考树的基本术语与二叉树性质)
难度:⭐⭐
建议:重点掌握树的基本术语(根/叶子/度/深度),理解二叉树的递归定义,区分满二叉树与完全二叉树

1️⃣ 什么是树?

树(Tree)是一种非线性数据结构,它由nnnn≥0n \ge 0n0)个节点组成,节点之间有层次关系

递归定义:树是nnn个节点的有限集合。当n=0n=0n=0时称为空树;当n>0n>0n>0时,有且仅有一个根节点(Root),其余节点可分为mmmm≥0m \ge 0m0)个互不相交的有限集合,每个集合本身又是一棵树(称为子树)。

打个比方:树就像公司的组织架构图。总经理(根节点)下面有多个部门经理(子树),每个部门经理下面又有多个员工(子树的子树)。总经理是所有人的“祖先”,最底层的员工是“叶子”。

树的特点

  • 每个节点有零个或多个子节点
  • 除根节点外,每个节点有且仅有一个父节点
  • 节点之间没有环路(不是图)

2️⃣ 树的基本术语(软考必考)

术语含义示例说明
根节点(Root)树中唯一没有父节点的节点总经理
父节点(Parent)某节点的直接上层节点部门经理是员工的父节点
子节点(Child)某节点的直接下层节点员工是部门经理的子节点
兄弟节点(Sibling)具有相同父节点的节点同一部门下的员工
叶子节点(Leaf)没有子节点的节点(度为0)最底层的员工
度(Degree)节点拥有的子节点个数一个经理管3个人 → 度为3
树的度树中所有节点的度的最大值全公司最多管5个人 → 树的度为5
深度(Depth)从根节点到某节点的唯一路径长度(根节点深度为0,根节点高度为0)第3层员工的深度为3(从0开始)或深度为2(从0开始)?不同教材定义可能不同,考试时以题目定义为准
高度(Height)从某节点到其最远叶子节点的路径长度同上
层次(Level)根节点为第1层,往下递增根节点在第1层
森林(Forest)mmmm≥0m \ge 0m0)棵互不相交的树的集合多个组织架构图放一起

3️⃣ 二叉树(Binary Tree)

3.1 什么是二叉树?

二叉树是一种特殊的树结构,其特点是:每个节点最多只有两个子节点,分别称为左子节点右子节点

正式定义:二叉树是nnnn≥0n \ge 0n0)个节点的有限集合。当n=0n=0n=0时为空二叉树;当n>0n>0n>0时,由一个根节点和两棵互不相交的子树组成,这两棵子树分别称为左子树右子树,且左子树和右子树本身也是二叉树

3.2 二叉树与树的区别

对比项树(一般)二叉树
子节点个数任意(0≤degree≤m0 \le degree \le m0degreem最多2个(左、右)
子节点顺序无序有序(区分左右)
度数限制每个节点度≤2\le 22
空树允许允许
是否为有序树一般树无序二叉树有序

关键点:二叉树是有序树——左子树和右子树不能互换。即使只有一个子节点,也必须明确它是左子节点还是右子节点。

3.3 二叉树的五种基本形态

形态描述图示
空二叉树没有节点
只有根节点根节点没有子节点(A)
只有左子树根节点只有左子节点(A( B ))
只有右子树根节点只有右子节点(A( C ))
左右子树均有根节点同时有左右子节点(A( B )( C ))

4️⃣ 满二叉树与完全二叉树(重点)

4.1 满二叉树(Full Binary Tree)

定义:一棵高度为hhh的二叉树,如果所有叶子节点都在第hhh层,且每个非叶子节点都有两个子节点,则称为满二叉树

特点

  • 每一层的节点数都达到最大值
  • iii层有2i−12^{i-1}2i1个节点(根节点为第1层)
  • 总节点数 =2h−12^h - 12h1

4.2 完全二叉树(Complete Binary Tree)

定义:一棵高度为hhh的二叉树,如果第111层到第h−1h-1h1层都是满的,且第hhh层的节点从左到右连续排列(中间没有空缺),则称为完全二叉树

特点

  • 满二叉树一定是完全二叉树
  • 完全二叉树不一定是满二叉树
  • 叶子节点只能出现在最后两层
  • 可以通过数组顺序存储(无需指针)

4.3 满二叉树 vs 完全二叉树(易混淆)

对比项满二叉树完全二叉树
所有叶子节点都在最底层只能在最后两层
非叶子节点都有两个子节点每个节点度≤2\le 22
节点数2h−12^h - 12h1不一定
顺序存储可以可以(经典考点)

5️⃣ 经典例题

例题1:一棵高度为hhh的满二叉树,其节点总数为( )。

A.2h2^h2h
B.2h−12^h - 12h1
C.2h+12^h + 12h+1
D.2h+1−12^{h+1} - 12h+11

解析:高度为hhh的满二叉树共有2h−12^h - 12h1个节点。选B


例题2:下列关于完全二叉树的叙述中,正确的是( )。

A. 完全二叉树中所有叶子节点都在同一层
B. 完全二叉树可以用数组顺序存储
C. 完全二叉树就是满二叉树
D. 完全二叉树中每个节点的度都为2

解析:A错误——完全二叉树的叶子节点可以在最后两层;B正确——完全二叉树是顺序存储的经典应用;C错误——完全二叉树不一定是满二叉树;D错误——叶子节点度为0。选B

6️⃣ 记忆口诀

树是非线性结构,根节点唯一无父。
叶子度为0,树的度看最大。
二叉树最多两个子,左右有序不混淆。
满二叉树全满,完全二叉树连续填。

7️⃣ 小测验(评论区对答案)

一棵高度为hhh的完全二叉树,其节点数最多为( )。
A.2h2^h2h
B.2h−12^h - 12h1
C.2h+1−12^{h+1} - 12h+11
D.2h+12^{h} + 12h+1

🔔本专栏日更,点击头像 → 专栏《软考中级高频考点》订阅,第一时间接收新内容

#软考中级 #软件设计师 #树 #二叉树 #满二叉树 #完全二叉树 #数据结构 #软考备考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/13 2:38:25

C++算法实战:从暴力穷举到递推公式求解三角形计数问题

1. 项目概述:当C遇上小学数学 最近在辅导家里小朋友做数学题,遇到一个经典的“数三角形”问题,题目大概是在一个复杂的图形里,数出所有大小不一的三角形个数。小朋友数得眼花缭乱,不是漏了就是重了。我一看&#xff0c…

作者头像 李华
网站建设 2026/8/13 2:38:08

Python Flask地理编码微服务实战:从API调用到EXE打包完整指南

1. 项目概述:从地址到坐标的魔法 “地理编码”这个词听起来可能有点学术,但它的本质非常简单:就是把我们人类能看懂的文字地址,比如“北京市海淀区中关村大街27号”,转换成计算机能理解的经纬度坐标(例如&…

作者头像 李华
网站建设 2026/8/13 2:37:36

深入解读c蔡甸区城乡建设局网站功能指南与便民服务全解析

在这个信息爆炸且高度数字化的时代,对于一个生活在城市或城乡结合部的普通人来说,政府官方网站早已不再是那个冷冰冰、只挂着几条静态新闻的电子布告栏。它实际上已经成为我们日常生活中不可或缺的“数字邻里中心”。特别是在涉及住房安全、市政建设、房产交易这些关乎切身利…

作者头像 李华
网站建设 2026/8/13 2:35:31

深度解析霍尔果斯建设局网站如何赋能城市基建与民生服务的全面升级

在这个数字化浪潮席卷全球的今天,我们脚下的每一寸土地、头顶的每一片天空,甚至路边一盏路灯的明暗,都离不开背后那些默默付出的人和数据系统。很多人可能觉得,“城市建设”这四个字离自己很远,那是专家的事,是规划局的大事,是建筑工人的活儿。但如果你细心观察,就会发…

作者头像 李华
网站建设 2026/8/13 2:34:30

二叉树中序遍历:原理、实现与工程应用

1. 中序遍历的核心概念与应用场景中序遍历(In-order Traversal)是二叉树遍历的三种基本方式之一,它的核心操作顺序是"左子树-根节点-右子树"。这种遍历方式之所以重要,是因为对于二叉搜索树(BST)…

作者头像 李华