数据结构中的经典树

在大大小小的各家软件公司的面试、笔试中,关于数据结构的问题总是难以避免的。作为一名程序员如果不了解基本的数据结构显然是不够合格的,即使你做的前端,即使你只是使用第三方库开发……Anyway! 关于数据结构的范围太广,个人的认识也不够全面,今天开始打算把关于数据结构中的树部分稍微整理一下,理清一下思路,作为日后的笔记做参考使用。

树状图是一种数据结构,它是由n(n>=1)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:

  • 每个结点有零个或多个子结点;
  • 没有前驱的结点称为根结点;
  • 每一个非根结点有且只有一个父结点;
  • 除了根结点外,每个子结点可以分为m个不相交的子树;

树

树的应用范围非常广泛,从数据的组织到数据存储,数据查找,数据更新,数据分析等等,几乎在计算机的每个领域都能看到树的身影。在所有这些树中,最经典最常用的莫过于二叉树(Binary Tree)了。这一系列关于树的文章将重点围绕二叉树展开,并做适当扩展,包括:

  • 二叉查找树 (Binary Find Tree)
  • 平衡二叉树 (AVL Tree)
  • 红黑树 (Red-Black Tree)
  • 字典树 (trie Tree)
  • 后缀树 (Suffix Tree)
  • B-树、B+树、B*树
  • R树
  • ……

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章