資料結構 考研 判斷滿二叉樹

2021-10-24 03:10:12 字數 1307 閱讀 8599

除最後一層無任何孩子外,每一層上的所有結點都有左右孩子的二叉樹叫做滿二叉樹。

判斷一棵二叉樹是不是滿二叉樹,首先是遞迴的方法:

空樹是滿二叉樹,非空的樹當且僅當它的左右子樹都是滿二叉樹的時候,它就是一棵滿二叉樹。

每個子樹應當滿足:① 同時存在左子樹和右子樹;② 左右子樹高度相同。

/*每個節點都存在左右孩子並且左右子樹深度相同時是滿二叉樹*/ 

int height(tree& t)

bool isfulltree(tree& t)

非遞迴的辦法:

利用廣度優先遍歷,記錄每層的寬度,判斷每層的寬度是否符合 2 ^(n - 1)。

bool levelorder(tree& t) 

if(width < num) return false; //只要有一層出隊個數小於num,那麼就不是一棵滿二叉樹

else num *= 2;

} return true;

}

總的**如下:

#include#includeusing namespace std;

typedef struct nodetreenode,*tree;

//非遞迴

/*由根向下進行廣度優先遍歷,判斷每層是否為滿*/

bool levelorder(tree& t)

if(width < num) return false; //只要有一層出隊個數小於num,那麼就不是一棵滿二叉樹

else num *= 2;

} return true;

}//遞迴

/*每個節點都存在左右孩子並且左右子樹深度相同時是滿二叉樹*/

資料結構筆記 樹 二叉樹 滿二叉樹

二叉樹滿二叉樹 樹是n n 0 個結點的有限集。結點為零的樹為空樹。任意一棵非空樹中 1.有且有乙個特定的稱為根的結點 2.當n 1時,其餘結點可分為m m 0 個互不相交的有限集,其中每乙個集合又是一棵樹,並稱為根的子樹。1.結點擁有的子樹數稱為結點的度 2.度為0的結點稱為葉結點或分支結點,除根...

資料結構之滿二叉樹

二叉樹 二叉樹是n n 0 個結點的有限集合,它或為空 n 0 或是由乙個根及兩棵互不相交的左子樹和右子樹組成,且樹中左子樹和右子樹也均為二叉樹 二叉樹可以是空集合,左子樹 右子樹也可以為空 二叉樹的特點 二叉樹可以是空的,稱空二叉樹 每個結點最多只能有兩個孩子 子樹有左 右之分且次序不能顛倒 二叉...

資料結構 樹結構 二叉樹 完全二叉樹 滿二叉樹

樹結構是一種描述非線性層次關係的資料結構。除根結點外,其餘每個結點有且僅有乙個直接前驅。每個結點可以有任意多個直接後繼。英文名詞表示 tree,root,node,leaf,edge,child,subtree 要麼二叉樹沒有根結點,是一棵空樹。要麼二叉樹由根結點,左子樹,右子樹組成,且左子樹和右子...