<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 樹數據結構 > 原文: [https://www.programiz.com/dsa/trees](https://www.programiz.com/dsa/trees) #### 在本教程中,您將學習樹數據結構。 此外,您還將了解不同類型的樹以及樹中使用的術語。 樹是一種非線性的分層數據結構,由邊連接的節點組成。 ![tree in data structure](https://img.kancloud.cn/b2/f4/b2f40c300a038bd867988d9bd4f1eeef_456x560.png "tree") 一個樹 * * * ## 為什么是樹數據結構? 其他數據結構(例如數組,鏈表,棧和隊列)是線性數據結構,可順序存儲數據。 為了在線性數據結構中執行任何操作,時間復雜度隨數據大小的增加而增加。 但是,在當今的計算世界中這是不可接受的。 不同的樹數據結構是非線性數據結構,因此可以更快,更輕松地訪問數據。 * * * ## 樹術語 ### 節點 節點是一個包含鍵或值以及指向其子節點的指針的實體。 每個路徑的最后一個節點稱為**葉節點**或外部節點,不包含指向子節點的鏈接/指針。 具有至少一個子節點的節點被稱為**內部節點**。 ### 邊 它是任何兩個節點之間的鏈接。 ![Nodes and edges of a tree](https://img.kancloud.cn/9c/df/9cdf94f0abb38f0c8f1c5193b6b07de7_614x432.png "Nodes and edges of a tree") 樹的節點和邊 ### 根 它是樹的最高節點。 ### 節點高度 節點的高度是從節點到最深葉(即,從節點到葉節點的最長路徑)的邊數。 ### 節點深度 節點的深度是從根到節點的邊數。 ### 一棵樹的高度 樹的高度是根節點的高度或最深節點的深度。 ![Height and depth of each node in a tree](https://img.kancloud.cn/d0/f8/d0f867ec4ee898b2baa23befd4d53e8a_672x624.png "Tree showing height and depth at each node") 樹中每個節點的高度和深度 ### 節點的度 節點的度數是該節點的分支總數。 ### 森林 不連貫的樹木的集合稱為森林。 ![Forest in data structure](https://img.kancloud.cn/61/76/6176ea8c924bc3f98539eb480c6cddc1_960x444.png "Forest") 從樹上創建森林 您可以通過切割樹的根來創建森林。 * * * ## 樹的類型 1. [二叉樹](http://www.programiz.com/dsa/binary-tree) 2. [二叉搜索樹](https://www.programiz.com/dsa/binary-search-tree) 3. [AVL 樹](https://www.programiz.com/dsa/avl-tree) 4. [B 樹](http://programiz.com/dsa/b-tree) * * * ## 樹的遍歷 為了對樹執行任何操作,您需要到達特定節點。 樹遍歷算法有助于訪問樹中的所需節點。 要了解更多信息,請訪問[樹遍歷](https://www.programiz.com/dsa/tree-traversal)。 * * * ## 樹的應用 * 二叉搜索樹(BST)用于快速檢查元素是否存在于集合中。 * 堆是一種用于堆排序的樹。 * 現代路由器中使用稱為 Tries 的樹的修改版本來存儲路由信息。 * 最受歡迎的數據庫使用 B 樹和 T 樹,這是我們上面學習的樹結構的變體,用于存儲其數據 * 編譯器使用語法樹來驗證您編寫的每個程序的語法。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看