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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

再谈二叉树(二叉树概念,二叉树的性质,二叉树的存储结构)

發布時間:2023/11/30 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 再谈二叉树(二叉树概念,二叉树的性质,二叉树的存储结构) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

樹的概念

樹的概念

樹是一種非線性的數據結構,它是由n(n>=0)個有限結點組成一個具有層次關系的集合。把它叫做樹是因 為它看起來像一棵倒掛的樹,也就是說它是根朝上,而葉朝下的。它具有以下的特點:每個結點有零個或多 個子結點;沒有父結點的結點稱為根結點;每一個非根結點有且只有一個父結點;除了根結點外,每個子結 點可以分為多個不相交的子樹

一些基本概念

  • 節點的度:一個節點含有的子樹的個數稱為該節點的度;
  • 葉節點或終端節點:度為0的節點稱為葉節點;
  • 非終端節點或分支節點:度不為0的節點;
  • 雙親節點或父節點:若一個節點含有子節點,則這個節點稱為其子節點的父節點;
  • 孩子節點或子節點:一個節點含有的子樹的根節點稱為該節點的子節點;
  • 兄弟節點:具有相同父節點的節點互稱為兄弟節點;
  • 樹的度:一棵樹中,最大的節點的度稱為樹的度;
  • 樹的高度或深度:樹中節點的最大層次;
  • 堂兄弟節點:雙親在同一層的節點互為堂兄弟;
  • 節點的祖先:從根到該節點所經分支上的所有節點;
  • 子孫:以某節點為根的子樹中任一節點都稱為該節點的子孫。


二叉樹概念

概念

一棵二叉樹是結點的一個有限集合,該集合或者為空,或者是由一個根節點加上兩棵別稱為左子樹和右子樹 的二叉樹組成。

二叉樹的特點:
  • 每個結點最多有兩棵子樹,即二叉樹不存在度大于2的結點。
  • 二叉樹的子樹有左右之分,其子樹的次序不能顛倒。
  • 特殊的二叉樹

  • 滿二叉樹:一個二叉樹,如果每一個層的結點數都達到最大值,則這個二叉樹就是滿二叉樹。也就是 說,如果一個二叉樹的層數為K,且結點總數是(2^k) -1 ,則它就是滿二叉樹。
  • 完全二叉樹:完全二叉樹是效率很高的數據結構,完全二叉樹是由滿二叉樹而引出來的。對于深度為K 的,有n個結點的二叉樹,當且僅當其每一個結點都與深度為K的滿二叉樹中編號從1至n的結點一一對 應時稱之為完全二叉樹。 要注意的是滿二叉樹是一種特殊的完全二叉樹。
  • 二叉樹的性質

  • 非空二叉樹上葉子結點數等于度為 2 的結點數加 1 。
  • 非空二叉樹上第 K 層上至多有2^(k-1) 個結點(K >= 1)。
  • 高度為 H 的二叉樹至多有 2^H-1個結點。
  • 對完全二叉樹按從上到下、從左到右的順序依次編號 1 , 2 , … , N , 則有以下的關系:
    • 當 i > 1 時,結點 i 的雙親結點編號為 ,即當 i 為偶數時,且雙親結點的編號為 i / 2 ,它是雙親結點的左孩子;當 i 為奇數時,其雙親結點的編號為 ( i -1) / 2 ,它是雙親結點的右孩子。
    • 當 2i <= N ,結點 i 的左孩子編號為 2i ,否則無左孩子。
    • 當 2i + 1 <= N 時,結點 i 的右邊的孩子為 2i + 1 ,否則無右邊的孩子。
    • 結點 i 所在的層次(深度)為 。
    • 具有N 個(N>0)結點的完全二叉樹的高度為 或者

    二叉樹的存儲結構

    順序存儲

  • 二叉樹的順序存儲結構就是用一組地址連續的存儲單元依次自上而下、自左向右存儲完全二叉樹
    二叉樹上的結點元素,即將完全二叉樹上編號為 i 的結點元素存儲在某個數組下標為 i -1 的分量中,
    然后通過一些方法確定結點在邏輯上的父子和兄弟關系。

  • 依據二叉樹的性質,“ 完全二叉樹 ” 和“ 滿二叉樹 " 采用順序存儲比較合適,樹中結點的序號可以
    唯一地反映出結點之間的邏輯關系,這樣既能最大可能地節省存儲空間,又可以利用數組元素的下標值確定結點在二叉樹中的位置,以及結點之間的關系。

  • 對于一般的二叉樹,為了讓數組下標能反映二叉樹中結點之間的邏輯關系,只能添加一些并不存在的空結點讓其每個結點與完全二叉樹上的結點相對照,再存儲到一維數組的相應分量中。然而,在最壞的情況下,一個高度為 H 且只有 H 個結點的單支樹卻需要占據接近 個存儲單元。

  • 二叉樹的順序存儲如下圖所示(其中 NO表示并不存在的空結點)

  • 鏈式存儲

  • 由于順序存儲對空間利用率較低,因此,一般二叉樹都采用鏈式存儲結構。鏈式結構是指用一個鏈表來存儲一棵二叉樹,二叉樹中每一個結點用鏈表的一個鏈結點來存儲。在二叉樹中,結點結構通常包括“ 若干數據域 ”及 “ 若干指針域 ”。二叉鏈表至少包含 3 個域:數據域 data 、左指針域 lchild 、右指針域 rchild ,如下圖所示:
  • 總結

    以上是生活随笔為你收集整理的再谈二叉树(二叉树概念,二叉树的性质,二叉树的存储结构)的全部內容,希望文章能夠幫你解決所遇到的問題。

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