選單
×
   ❮   
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 提供支援