輸出有兩行:
第一行是二叉樹的中序遍歷序列;
第二行是二叉樹的葉子結點個數。
abc##de#g##f###
cbegdfa
3
到此總結了二叉樹的構造、求深度、結點、葉子節點、三種順序遍歷的演算法,都在之前的幾篇部落格裡。
#include
#include
typedef
struct bitnodebitnode,
*bitree;
//先序序列建立二叉樹
intcreatebitree
(bitree *t)
else
(*t)
->data = ch;
createbitree(&
(*t)
->lchild)
;createbitree(&
(*t)
->rchild);}
return1;
}//中序遍歷二叉樹
void
inorder
(bitree t)
}//求葉子節點個數
int nodecount ( bitree t)
else
else
return
nodecount
(t->lchild)
+nodecount
(t->rchild);}
}int
main()
return0;
}
求二叉樹葉子結點個數
樹的定義 由乙個或多個 n 0 結點組成的有限集合t,有且僅有乙個結點稱為根 root 當 n 1時,其餘的結點分為m m 0 個相互不相交的有限集合t1,t2,tm。每個集合本身又是棵樹,被稱作這個根的子樹。樹的結構特點 1.非線性結構,有乙個直接前驅,但可能有多個直接後繼 1 n 2.樹的定義具...
求二叉樹的高度,寬度 節點個數 葉子節點個數
include include include 實現求二叉樹的高度,寬度 節點個數 葉子節點個數 typedef struct node tnode,ptnode ptnode createtree else ptnode data data ptnode lchild createtree ptn...
計算二叉樹的結點個數
include using namespace std extern int gnum 0 struct infor class test static int creattrees struct infor p,int k if 2 k creattrees q,1 creattrees q,2 ...