菜单
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

DSA


树数据结构与链表类似,它包含数据,并且可以链接到其他节点。

我们之前已经介绍过数组、链表、栈和队列等数据结构。这些都是线性结构,意味着每个元素都在序列中紧随另一个元素。然而,树不同。在树中,单个元素可以有多个“下一个”元素,从而允许数据结构向各个方向分支。

这个数据结构被称为“树”,因为它看起来像一棵树,只是颠倒过来的,就像下面的图片一样。

R A B C D E F G H I

树数据结构在许多情况下都很有用

  • 分层数据:文件系统、组织模型等。
  • 数据库:用于快速检索数据。
  • 路由表:用于网络算法中的数据路由。
  • 排序/搜索:用于对数据进行排序和搜索数据。
  • 优先队列:优先队列数据结构通常使用树来实现,例如二叉堆。

树的术语和规则

通过使用下面的交互式树可视化,学习用于描述树数据结构的词汇。

R A B C D E F G H I

树中的第一个节点称为节点。

连接一个节点到另一个节点的链接称为

节点链接到其节点。父节点的另一个说法是内部节点。

一个节点可以有零个、一个或多个子节点。

一个节点只能有一个父节点。

没有链接到其他子节点的节点称为叶子叶节点

树的高度是从根节点到叶节点的最大边数。上图的高度是 2。

节点的高度是节点与叶节点之间的最大边数。

树的大小是树中节点的数量。


树的类型

树是计算机科学中的一种基本数据结构,用于表示分层关系。本教程涵盖了几种关键的树类型。

二叉树:每个节点最多有两个子节点,即左子节点和右子节点。这种结构是二叉搜索树和 AVL 树等更复杂树类型的基础。

二叉搜索树(BST):一种二叉树,其中对于每个节点,左子节点的值较低,而右子节点的值较高。

AVL 树:一种二叉搜索树,它会自我平衡,使得对于每个节点,左子树和右子树的高度差最多为一。通过在插入或删除节点时进行旋转来维持这种平衡。

这些数据结构中的每一种都在接下来的页面中进行了详细描述,包括动画和如何实现它们。


DSA 练习

通过练习来测试自己

练习

在下面的树形数据结构中

A tree data structure

C、D、E 和 G 节点分别称为什么?

Nodes C, D, E, and G 
are called  nodes.

开始练习



×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持