再谈二叉树(二叉树概念,二叉树的性质,二叉树的存储结构)
樹的概念
樹的概念
樹是一種非線性的數據結構,它是由n(n>=0)個有限結點組成一個具有層次關系的集合。把它叫做樹是因 為它看起來像一棵倒掛的樹,也就是說它是根朝上,而葉朝下的。它具有以下的特點:每個結點有零個或多 個子結點;沒有父結點的結點稱為根結點;每一個非根結點有且只有一個父結點;除了根結點外,每個子結 點可以分為多個不相交的子樹
一些基本概念
- 節點的度:一個節點含有的子樹的個數稱為該節點的度;
- 葉節點或終端節點:度為0的節點稱為葉節點;
- 非終端節點或分支節點:度不為0的節點;
- 雙親節點或父節點:若一個節點含有子節點,則這個節點稱為其子節點的父節點;
- 孩子節點或子節點:一個節點含有的子樹的根節點稱為該節點的子節點;
- 兄弟節點:具有相同父節點的節點互稱為兄弟節點;
- 樹的度:一棵樹中,最大的節點的度稱為樹的度;
- 樹的高度或深度:樹中節點的最大層次;
- 堂兄弟節點:雙親在同一層的節點互為堂兄弟;
- 節點的祖先:從根到該節點所經分支上的所有節點;
- 子孫:以某節點為根的子樹中任一節點都稱為該節點的子孫。
二叉樹概念
概念
一棵二叉樹是結點的一個有限集合,該集合或者為空,或者是由一個根節點加上兩棵別稱為左子樹和右子樹 的二叉樹組成。
二叉樹的特點:
特殊的二叉樹
二叉樹的性質
- 當 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表示并不存在的空結點)
鏈式存儲
總結
以上是生活随笔為你收集整理的再谈二叉树(二叉树概念,二叉树的性质,二叉树的存储结构)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 成都大熊猫繁育基地没有学生证能买学生票么
- 下一篇: 二叉树题目----1 前序中序后序