Java 数据结构:从树形结构到二叉树详解

你有没有想过,电脑里的文件分类、通讯录的层级关系,其实都藏着'树'的影子?树形结构是数据结构里最像'现实家族关系'的存在,而二叉树更是其中的明星选手——它规则清晰、操作灵活,是很多复杂数据处理的基础。


一、树形结构
1. 树形结构的概念
树是一种非线性的数据结构,它模拟了自然界中树的结构。树形结构由若干个节点 (node) 组成,这些节点之间存在明确的层次关系。
树是递归定义的结点的度:一个结点含有子树的个数称为该结点的度;树的度:一棵树中,所有结点度的最大值称为树的度;叶子结点或终端结点:度为 0 的结点称为叶结点;双亲结点或父结点:指向其他节点的节点;孩子结点或子结点:被其他节点指向的节点;根结点:每个树形结构有一个根节点 (root),它是树的起点;非终端结点或分支结点:度不为 0 的结点;兄弟结点:具有相同父结点的结点互称为兄弟结点;堂兄弟结点:双亲在同一层的结点互为堂兄弟;

2. 树的表示形式
双亲表示法,孩子表示法、孩子双亲表示法、孩子兄弟表示法等。
class Node {
int value; // 数据域
Node firstChild; // 第一个孩子
Node nextBrother; // 下一个兄弟
}

二、二叉树
1. 概念
二叉树是一种非线性数据结构,其中每个节点最多有两棵树,分别称为左子树和右子树。





