【正文】
{ if(low high) return(NULL)。 pdata = Tdata pl = Copy(Tlchild)。 } { 遞歸思想 : 如果是空樹,返回 0 統(tǒng)計二叉樹中結點的個數(shù) 求出左子樹的結點的個數(shù) m 求出右子樹的結點的個數(shù) n 返回 m+n+1 統(tǒng)計二叉樹中結點的個數(shù) int CountNode (BiTree T){ //返回指針 T所指二叉樹中所有葉子結點個數(shù) } if (!T ) return 0。 // 遍歷左子樹 3 Postorder(Trchild, visit)。 二叉樹的遍歷: 二叉樹是非線性結構,每個結點有兩個后繼,則存在如何遍歷即按什么樣的搜索路徑進行遍歷的問題。二叉樹的存儲結構和遍歷 二叉樹的遍歷 二叉樹的存儲結構 小結和作業(yè) 順序存儲 二叉鏈表 三叉鏈表 鏈式存儲 問題的提出 遞歸遍歷算法 遍歷的應用實例 二叉樹的順序存儲 順序存儲是用一組連續(xù)的存儲單元存放數(shù)據 順序存儲要求數(shù)據是線性結構 二叉樹是非線性結構 如何把二叉樹轉換為線性結構,而且保持結點之間的父 /子關系 ? 二叉樹的順序存儲 A C G B D E F K L H J I M N O 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 滿二叉樹:從上到下,從左往右依次編號 二叉樹的順序存儲 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 數(shù)組的下標,也是結點的編號 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 A B C E F D G H I J K L M N O 二叉樹的順序存儲 A C G B D E F H J I 1 2 3 4 5 6 7 8 9 10 完全二叉樹:從上到下,從左往右依次編號 0 1 2 3 4 5 6 7 8 9 10 A B C E F D G H I J 二叉樹的順序存儲 A B D C E F 一般的二叉樹:想象成一個完全二叉樹 A B D C E F 0 0 0 0 0 0 0 0 二叉樹的順序存儲 A B D C E F 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 二叉樹的順序存儲 A B D C E F 1 2 5 3 7 14 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A B C D E F 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 1 1 1 0 0 1 0 0 0 0 0 0 1 如何知道有無數(shù)據? define MAX_TREE_SIZE 100 // 二叉樹的最大結點數(shù) typedef TElemType SqBiTree[MAX_TREE_SIZE]。 問題的提出