二叉樹的基本理論知識

2022-03-12 03:17:40 字數 1532 閱讀 9111

樹是一種資料結構,它是n(n>=0)個節點的有限集。n=0時稱為空樹。n>0時,有限集的元素構成乙個具有層次感的資料結構。

區別於線性表一對一的元素關係,樹中的節點是一對多的關係。樹具有以下特點:

n>0時,根節點是唯一的,不可能存在多個根節點。

每個節點有零個至多個子節點;除了根節點外,每個節點有且僅有乙個父節點。根節點沒有父節點。

樹有許多相關的術語與概念,在學習樹的結構之前,我們要熟悉這些概念:

• 子樹:除了根節點外,每個子節點都可以分為多個不相交的子樹。(圖二)

孩子與雙親:若乙個結點有子樹,那麼該結點稱為子樹根的"雙親",子樹的根是該結點的"孩子"。在圖一中,b、h是a的孩子,a是b、h的雙親。

兄弟:具有相同雙親的節點互為兄弟,例如b與h互為兄弟。

節點的度:乙個節點擁有子樹的數目。例如a的度為2,b的度為1,c的度為3.

分支節點:除了葉子節點之外的節點,也即是度不為0的節點。

所有節點都只有左子樹的二叉樹叫做左斜樹,所有節點都只有右子樹的二叉樹叫做右斜樹。左斜樹和右子樹統稱為斜樹。

斜樹已經退化成線性結構,二叉樹在查詢上表現出來優異效能在斜樹得不到體現。

滿二叉樹要滿足兩個條件:

所有的節點都同時具有左子樹和右子樹。

所有的葉子節點都在同一層上。

在同樣深度的二叉樹中,滿二叉樹的節點數目是最多的,葉子數也是最多的。

完全二叉樹(complete binary tree) :若設二叉樹的深度為h,除第 h 層外,其它各層 (1~h-1) 的結點數都達到最大個數,第 h 層所有的結點都連續集中在最左邊,這就是完全二叉樹。

^代表不存在的結點。

對於右斜樹,順序儲存結構浪費儲存空間

鍊錶每個結點包含乙個資料域和兩個指標域:

其中data是資料域,lchild和rchild都是指標域,分別指向左孩子和右孩子。

一 資料庫基本理論知識

所謂資料就是描述事物的符號.在我們的日常生活中,資料無所不,在數字 文字 圖表 圖象 聲音等都是資料。人們通過資料來認識世界,交流資訊。資料庫,顧名思義,就是資料存放的地方。在計算機中,資料庫是資料和資料庫物件的集合。所謂資料庫物件是指表 table 檢視 view 儲存過程 stored proc...

二叉樹的基本知識

基本 pragma once include include include include using namespace std template struct binarytreenode template class binarytree binarytree t a,size t n,co...

理論基礎 二叉樹 二叉樹的遍歷

以二叉鍊錶的儲存結構為例 若二叉樹為空,則空操作,否則 先訪問根結點,再先序遍歷左子樹,然後先序遍歷右子樹 void preorder node bt 若二叉樹為空,則空操作,否則 先中序遍歷左子樹,再訪問根結點,然後中序遍歷右子樹 void inorder node bt 若二叉樹為空,則空操作,...