樹和二叉樹的一些基本術語
樹(tree):n(n≥0)個結點構成的有限集合。當n=0時,稱為「空樹」;對於任一棵「非空樹」(n>0),它具備以下性質:斜體樣式
特點:
c++描述:
#define maxsize 100
template
<
class
t>
struct pnode
; pnode tree[maxsize]
;int size;
c++描述:
;(1)訪問根結點
(2)按照從左到右的順序依次遍歷根結點的每一棵子樹。
(1)按照從左到右的順序依次遍歷根結點的每一棵子樹
(2)訪問根結點。
從第一層開始,從上到下逐層遍歷,同層按從左到右的順序遍歷。
二叉樹t:乙個有窮的結點集合。這個集合可以為空;若不為空,則它是由根結點和稱為其左子樹tl和右子樹tr的兩個不相交的二叉樹組成。二叉樹的子樹有左右順序之分。
完全二叉樹的順序儲存結構中,按從上至下、從左到右順序儲存n個結點的完全二叉樹的結點父子關係:
將二叉樹按照完全二叉樹編號
然後用一維陣列儲存該二叉樹,其中無結點的位置使用null表示
1.樹轉換為二叉樹規則
⑴加線——樹中所有相鄰兄弟之間加一條連線。
⑵去線——對樹中的每個結點,只保留它與第乙個孩子結點之間的連線,刪去它與其它孩子結點之間的連線。
⑶層次調整——以根結點為軸心,將樹順時針轉動一定的角度,使之層次分明。
⑴ 將森林中的每棵樹轉換成二叉樹;
⑵ 從第二棵二叉樹開始,依次把後一棵二叉樹的根結點作為前一棵二叉樹根結點的右孩子,當所有二叉樹連起來後,此時所得到的二叉樹就是由森林轉換得到的二叉樹。
⑴ 加線——若某結點x是其雙親y的左孩子,則把結點x的右孩子、右孩子的右孩子、……,都與結點y用線連起來;
⑵ 去線——刪去原二叉樹中所有的雙親結點與右孩子結點的連線;
⑶ 層次調整——整理由⑴、⑵兩步所得到的樹或森林,使之層次分明。
二叉樹 滿二叉樹和完全二叉樹
二叉樹是一種很重要的非線性資料結構,它是樹結構的一種重要的型別 它不是樹結構的特殊情況 其特徵是每個節點最多有兩個子樹。二叉樹的特點 二叉樹每個結點最多有 2個子結點,樹則無此限制 二叉樹中 結點的子樹 分成左子樹和右子樹,即使某結點只有一棵子樹,也要指明該子樹是左子樹,還是右子樹,就是說 二叉樹是...
樹 二叉樹 滿二叉樹 完全二叉樹 完滿二叉樹
目錄名稱作用根 樹的頂端結點 孩子當遠離根 root 的時候,直接連線到另外乙個結點的結點被稱之為孩子 child 雙親相應地,另外乙個結點稱為孩子 child 的雙親 parent 兄弟具有同乙個雙親 parent 的孩子 child 之間互稱為兄弟 sibling 祖先結點的祖先 ancesto...
二叉樹和完全二叉樹
二叉樹規律 假設根節點的高度為0 二叉樹是每個節點至多只有兩個節點的樹 深度為i所在的層至多有 2 i個節點 高度為k的二叉樹至多有2 k 1 1個節點 n0表示度為0的節點,n2表示度為2的節點,存在n0 n2 1 對所有樹有 節點個數 邊數 1 完全二叉樹規律 節點數為n的完全二叉樹,其高度為 ...