日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据结构之—树

發布時間:2024/9/5 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构之—树 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、樹的定義及一些基本術語

樹:樹是一類重要的非線性數據結構,是以分支關系定義的層次結構

樹的一些基本術語:

  • 結點(node)——樹中的元素,包括數據項及若干指向其子樹的分支
  • 結點的度(degree)——結點擁有的子樹數
  • 樹的度——一棵樹中最大的結點度數
  • 葉子(leaf)——度為0的結點
  • 孩子(child)——結點子樹的根稱為該結點的孩子
  • 雙親(parents)——孩子結點的上層結點
  • 兄弟(sibling)——同一雙親的孩子
  • 結點的層次(level)——從根結點算起,根為第一層,它的孩子為第二層……
  • 樹的深度(depth)/高度——樹中結點的最大層次數
  • 森林(forest)——m(m?0)棵互不相交的樹的集合
  • 子孫——一個結點所有子樹中的結點。
  • 祖先——從根結點到達某結點路徑上的所有結點。
  • 有序樹/無序樹——如果一棵樹中結點的各子樹從左到右是有次序的,即交換了某結點各子樹的相對位置, 則構成不同的樹,那么稱該樹為有序樹。反之,為無序樹。
  • 基本形態

二、二叉樹(重點)

  • 定義:二叉樹是n>=0個結點的有限集,它或為空樹(n=0),或由一個根結點和兩棵分別稱為左、右子樹的互不相交的二叉樹構成
  • 特點:度為2的有序樹
  • 基本形態
  • 性質:
    • 二叉樹第i層最多2i-1個結點(i>=1)
    • 深度為k的二叉樹至多有2k-1個結點(k>=1)
    • 對任何一棵二叉樹T,如果其終端結點數為n0,度為2的結點數為n2,則n0=n2+1。 或:二叉樹的葉子結點數等于雙分支結點數加1。
  • 滿二叉樹:一顆深度為K且結點數為2k-1的樹,即除了最后一層都沒有空孩子且只有最后一層有且全為葉結點
  • 完全二叉樹:
    • 定義:深度為k, 有n個結點的二叉樹當且僅當其每一個結點都與深度為k的滿二叉樹中編號從1至n的結點一一對應。
    • 特點:深度為k的完全二叉樹第1~k-1層必定為滿二叉樹,第k層的葉結點必定集中在左邊
    • 性質:具有n個結點的完全二叉樹的深度為 |log2(n+1)|或|log2n|+1
  • 完全二叉樹和滿二叉樹最主要的區別在于最后一層是否完整,(注:滿二叉樹是特殊的完全二叉樹)

三、二叉樹的遍歷

遍歷:如何按某條搜索路徑訪問二叉樹中的每個頂點,使每個節點被訪問一次且僅被訪問一次

常見方法:

  • 先序遍歷:先訪問根結點,然后分別先序遍歷左子樹、右子樹
  • 中序遍歷:先中序遍歷左子樹,然后訪問根結點,最后中序遍歷右子樹
  • 后序遍歷:先后序遍歷左、右子樹,然后訪問根結點
  • 按層次遍歷:從上到下、從左到右訪問各結點

用一張圖來解釋

轉載于:https://www.cnblogs.com/damocleses/p/10660979.html

總結

以上是生活随笔為你收集整理的数据结构之—树的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。