Skip to content

Latest commit

 

History

History
36 lines (21 loc) · 1.27 KB

树.md

File metadata and controls

36 lines (21 loc) · 1.27 KB

数据结构 - 树

树是一种分层数据结构,由顶点(节点)和连接它们的边组成。树类似于图形(graph),但区分树和图形的关键点是树结构中不存在循环。

树广泛用于人工智能和复杂算法,以提供解决问题的有效存储机制。

这是一个简单树的图像,以及树数据结构中使用的基本术语:

以下是树的类型:

  • N-ary树 (N-ary Tree)
  • 平衡树(Balanced Tree)
  • 二叉树(Binary Tree)
  • 二叉搜索树(Binary Search Tree)
  • AVL树(AVL Tree)
  • 红黑树(Red Black Tree)
  • 2-3树(2–3 Tree)

除此之外,二叉树和二叉搜索树是最常用的树。

常见的Tree面试问题

  • 找到二叉树的高度
  • 在二叉搜索树中查找第k个最大值
  • 查找距离根“k”距离的节点
  • 在二叉树中查找给定节点的根

前缀树

堆和二叉堆

堆是一颗具有特定性质的二叉树,堆的基本要求就是堆中所有结点的值必须大于或等于(或小于或等于)其孩子结点的值,这也称为堆的性质;堆还有另一个性质,就是当 h > 0 时,所有叶子结点都处于第 h 或 h - 1 层(其中 h 为树的高度,完全二叉树),也就是说,堆应该是一颗完全二叉树;