noip普及講座5-樹的基礎知識
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創性部分享有著作權。
- 關 鍵 詞:
- noip 普及 講座 基礎知識
- 資源描述:
-
《noip普及講座5-樹的基礎知識》由會員分享,可在線閱讀,更多相關《noip普及講座5-樹的基礎知識(44頁珍藏版)》請在技術文庫上搜索。
1、樹的基礎知識 江蘇省華羅庚中學江蘇省華羅庚中學 楊志軍楊志軍 樹的基本概念01 二叉樹的基本知識02 二叉樹的應用03 特殊二叉樹04 Table of Contents 內容大綱 樹的基本概念 (1)樹的定義 樹是n(n0)個結點的有窮集合,滿足: 有且僅有一個稱為根的結點; 其余結點分為m(m0)個互不相交的非空集合T1,T2 ,Tm,這些集合中的每一個都是一棵樹,稱為根的子 樹。 樹的基本概念 (2)樹的表示方法 圖示表示: 廣義表表示: =(T) =(1(T1,T2 ,T3 ) =(1(2(T11,T12),3,4(T31) =(1(2(5,6),3,4(7(T311,T312) =(
2、1(2(5,6),3,4(7(8,9) 樹的基本概念 (3)樹的基本術語 結點的度和樹的度 結點的度:每個結點具有的子樹的個數或者說其后繼結點 的個數被定義為該結點的度。 樹的度:所有結點的度的最大值定義為該樹的度。 樹的基本概念 (3)樹的基本術語 分支結點和葉子結點 度大于0的結點稱為分支結點或非終端結點,度為0的結點 稱為葉子結點。 樹的基本概念 (3)樹的基本術語 孩子結點、雙親結點和兄弟結點 每個結點的后繼結點被稱為該結點的孩子結點,相應的該 結點被稱為雙親結點或父親結點。具有同一雙親結點的孩 子結點互稱為兄弟結點。 樹的基本概念 (3)樹的基本術語 樹的深度和寬度 樹中的結點的最大
3、層數稱為樹的深度或高度。 整棵樹中某一層中最多的結點數稱為樹的寬度。 二叉樹的基本知識 (1)二叉樹的基本概念 二叉樹是一種特殊的樹型結構,它是度數最多為2的樹, 即二叉樹的每個結點最多有兩個子結點。 二叉樹的基本知識 (2)二叉樹的性質 性質1:在二叉樹的第i層上至多有2i-1個結點(i1)。 性質2:深度為h的二叉樹至多有2h-1個結點(h1)。 一棵深度為k且有2k-1個結點的二叉樹稱為滿二叉樹。 二叉樹的基本知識 (2)二叉樹的性質 性質3:對任何一棵二叉樹,如果其葉結點數n0,度為2的結 點數為n2,則一定滿足:n0=n2+1。 性質4:具有n個結點的完全二叉樹的深度為trunc(l
4、og2n)+1 。 完全二叉樹的定義:深度為k,有n個結點的二叉樹當且僅當其每 一個結點都與深度為k的滿二叉樹中編號從1到n的結點一一對應 時,稱為完全二叉樹。 二叉樹的基本知識 (2)二叉樹的性質 性質5:對于一棵n個結點的完全二叉樹,對任一個結點(編號為i) 如果i=1,則結點i為根,無父結點;如果i1,則其父結點編號為 trunc(i/2)。 如果2in,則結點i無左孩子,即結點i為葉結點;否則左孩子編號為2i。 如果2i+1n,則結點i無右孩子,否則右孩子編號為2i+1。 二叉樹的基本知識 (3)二叉樹的存儲結構 順序存儲 對一個完全二叉樹的所有結點按層編號,將編號為i的結 點存入一維
5、數組的第i個單元。 123456789101112 ABICFJLDEGHK 二叉樹的基本知識 (3)二叉樹的存儲結構 順序存儲 對一個完全二叉樹的所有結點按層編號,將編號為i的結 點存入一維數組的第i個單元。 L D C P F EHN M 12345678910111213 LDPCFM#EH#N 二叉樹的基本知識 (3)二叉樹的存儲結構 鏈式存儲 type node=record data:char; left,right:longint; end; var a:array1n of node; 二叉樹的基本知識 (3)二叉樹的存儲結構 鏈式存儲 struct node char dat
6、a; int left,right; ; node a1001; 二叉樹的基本知識 (3)二叉樹的存儲結構 L D C P F EHN M 123456789 dataLDPCFMEHN left246070000 right350089000 二叉樹的基本知識 (4)二叉樹的建立(順序存儲) s:string; s:=“LDPCFM#EH#N” L D C P F EHN M 12345678910111213 LDPCFM#EH#N 二叉樹的基本知識 (4)二叉樹的建立(順序存儲) string s; s=“LDPCFM#EH#N” L D C P F EHN M 012345678910
7、1112 LDPCFM#EH#N 二叉樹的基本知識 (4)二叉樹的建立(鏈式存儲) L 2 3 D 4 5 P 6 0 C 0 0 F 7 8 M 0 9 E 0 0 H 0 0 N 0 0 L D C P F EHN M 123456789 dataLDPCFMEHN left246070000 right350089000 二叉樹的基本知識 (5)二叉樹的基本運算 1、二叉樹的輸出運算(采用廣義表): 設標記flag=0 如果當前結點不為空,則輸出該結點; 如果當前結點的左子樹不為空,則輸出“(”, flag=1,遞歸其左子樹; 如果當前結點的右子樹不為空,若flag=0,則輸出“ (”,
8、flag=1,否則輸出“,”,遞歸其右子樹; 如果flag=1,則輸出“)”。 二叉樹的基本知識 (5)二叉樹的基本運算 2、二叉樹的遍歷運算(先序、中序、后序) 先序遍歷的操作定義如下: 若二叉樹為空,則空操作,否則 訪問根結點 先序遍歷左子樹 先序遍歷右子樹 A,B,C,D,E,F,G,H 二叉樹的基本知識 (5)二叉樹的基本運算 2、二叉樹的遍歷運算(先序、中序、后序) 中序遍歷的操作定義如下: 若二叉樹為空,則空操作,否則 中序遍歷左子樹 訪問根結點 中序遍歷右子樹 C,B,A,F,E,G,D,H 二叉樹的基本知識 (5)二叉樹的基本運算 2、二叉樹的遍歷運算(先序、中序、后序) 后序
展開閱讀全文
