a.樹的基本概念
樹是簡單的非線性結構,樹中有且僅有乙個沒有前驅的結點稱為「根」,其餘結點分成m個互不相交的有限集合t1,t2,……,tm,每個集合又是一棵樹,稱t1,t2,……,tm m為根節點的子數。
父結點:每乙個結點只有乙個前件,無前件的結點只有乙個,稱為樹的根節點(簡稱樹的跟)。
子結點:每乙個節點可以接多個後件,無後件的結點稱為葉子結點。
樹的度:所有結點最大的度。
樹的深度:樹的最大層次。
b.二叉樹的定義及其基本性質
(1)定義:二叉樹是一種非線性結構,是有限的結點集合,該集合為空(空二叉樹)或由乙個根結點及兩棵互不相交的左右二叉子樹組成。可分為滿二叉樹和完全二叉樹,其中滿二叉樹一定是完全二叉樹,但完全二叉樹不一定是滿二叉樹。二叉樹具有以下兩個特點:
二叉樹可為空,空的二叉樹無結點,非空二叉樹有且只有乙個結點。
每個結點最多可有兩棵子樹,稱為左子樹和右子樹。
(2)基本性質
性質一:在二叉樹的第k層上至多有2的k-1次方個結點(k>=1)。
性質二:深度為m的二叉樹至多有2的m次方再減去1個結點。
性質三:對任何一棵二叉樹,度為0的節點總是比度為2的結點多乙個。
性質四:具有n個結點的完全二叉樹的深度至少為[log2n]+1,其中[log2n]表示log2n的整數部分。
數與二叉數
實驗目的 1.熟悉樹的各種儲存結構的特性 2.掌握採用二叉鍊錶作為儲存結構的樹的相關演算法 實驗內容 1.按先序序列構造二叉鍊錶 creatbitree 2.實現函式用於計算結點的總個數 countnode 3.實現函式用於計算葉子結點的個數 countleaf 4.實現函式 inorder 用於輸...
二叉樹 滿二叉樹與完全二叉樹
二叉樹 binary tree 是n n 0 個元素的有限集合,該集合為空或者為由乙個稱為 根 的元素及兩個不相交的 被分別稱為左子樹和右子樹的二叉樹組成 二叉樹的基本特點 每個結點最多有兩棵子樹 左子樹和右子樹是有順序的,且不可顛倒 圖一1 結點 二叉樹中的每乙個元素都稱為結點。通常二叉樹的許多名...
二叉查詢樹與平衡二叉樹
二叉查詢樹的性質 對於樹中的每乙個節點x,它的左子樹中所有關鍵字值小於x的關鍵字值,它的右子樹中的所有關鍵字值大於x的關鍵字值。二叉查詢樹的平均深度為o logn 下面看一下它的相關的操作函式。刪除乙個二叉樹 遞迴形式 void makeempty treenode root 在二叉查詢樹中找都某個...