1.基礎知識:二叉樹是一種非線性結構,而前面討論的都是線性結構,兩種是有本質區別的。它在現實社會中存在著很多的模型。例如,人類社會的族譜,社會的各種組織分層,國家,學校,單位的各種機構,這些都是用樹和二叉樹來表示的。其中二叉樹相當的實用。我為什麼這麼說呢,因為二叉樹很有規則性,它的一系列操作都是相當有規律的,操作相對來講比較簡單,而其他的樹則較二叉樹要複雜得多,並且各個分支之間都沒有固定的規律可循。
2.二叉樹的**實現:
//二叉樹類模板定義
template
class bitree
//void createbitree(bitree* bitreenode);
bitree*head=null;
//訪問結點資料函式模板
template
void visit(bitree*t)
}//先序建立一棵二叉樹
template
void createbitree(bitree* &bitreenode)
}//遞迴方式遍歷二叉樹:先序,中序,後序
//先序遍歷二叉樹
template
void preoder_recursive(bitree*t)
}//中序遍歷二叉樹
template
void inoder_recursive(bitree*t)
}//後序遍歷二叉樹
template
void postoder_recursive(bitree*t)
}int main()
3.二叉樹的應用
(*)/
/(a) (b)
這棵樹的葉子數:2
這棵樹的深度是:1
先序遍歷:*ab
中序遍歷:a*b
後序遍歷:ab*
第六章 樹(2)二叉樹
二叉樹 是另一種樹形結構,它的特點是每個結點至多只有兩棵子樹,即二叉樹中不存在度大於2的結點 並且。二叉樹的子樹有左右之分,其次序不能任意顛倒。1 各種型別的二叉樹 2 二叉樹的各種性質 性質一 在二叉樹的第 i 層上至多有2 i 1 個結點 i 1 性質二 深度為 k 的二叉樹至多有 2 k 1個...
第六章 樹和二叉樹
一 基本術語 1 節點 乙個資料元素機器若干指向其子樹的分支。2 節點的度 節點所擁有的子樹的顆樹。3 樹的度 樹中節點度的最大值。二 二叉樹 性質 對任意一棵二叉樹,若其葉子節點數為n0,度為二的節點數為n2,則n0 n2 1 1 滿二叉樹 一顆深度為k且有2的k次方 1個節點的二叉樹為滿二叉樹。...
第六章 數和二叉樹
樹形結構是一種重要的非線性資料結構 6.1樹的定義和基本術語 1.樹是n個節點的有限集 1 有且只有乙個特定的被稱為根的節點 2 n 1時其餘節點可分為m個互不相交的有限集,其中每乙個集合本身又是一棵樹,稱為根的子樹 6.2二叉樹 1.二叉樹是每個節點至多有兩顆子樹 即二叉樹中不存在度大於二的節點 ...