#include
using
namespace
std;
template
struct binarytreenode
t _data;
binarytreenode* _left;
binarytreenode* _right;
};template
class binarytree
//建構函式
binarytree(const t array, size_t size, const t& invalid) //前序遍歷建立二叉樹
//拷貝建構函式
binarytree(const binarytree& t)
//賦值運算子的過載
binarytree& operator=(const binarytree& t)
return *this;
}//先序遍歷
void preorder()
//求二叉樹第k層的結點個數
size_t getklevelnode(size_t k)
//獲取二叉樹的高度
size_t getheight()
~binarytree() //析構函式
private:
void _createtree(node *& root, const t array, size_t size , const t& invalid, size_t& index)
}node* _copybinarytree(node* root)
return newnode;
}void _destroy(node*& root)
}void _preorder(node* root) //先序遍歷:根節點->左子樹->右子樹
//獲取葉子結點的個數
size_t _getleafnode(node* root)
if (root->_left == null && root->_right == null)
return (_getleafnode(root->_left) + _getleafnode(root->_right));
}//獲取第k層結點的個數
size_t _getklevelnode(node* root, size_t k)
//獲取二叉樹的高度
size_t _getheight(node* root)
private:
binarytreenode* _root;
};int main()
求二叉樹葉子結點個數
樹的定義 由乙個或多個 n 0 結點組成的有限集合t,有且僅有乙個結點稱為根 root 當 n 1時,其餘的結點分為m m 0 個相互不相交的有限集合t1,t2,tm。每個集合本身又是棵樹,被稱作這個根的子樹。樹的結構特點 1.非線性結構,有乙個直接前驅,但可能有多個直接後繼 1 n 2.樹的定義具...
二叉樹葉子個數
資料結構實驗之二叉樹七 葉子問題 time limit 1000ms memory limit 65536k 題目描述 已知乙個按先序輸入的字串行,如abd,eg,cf,其中,表示空結點 請建立該二叉樹並按從上到下從左到右的順序輸出該二叉樹的所有葉子結點。輸入輸入資料有多行,每一行是乙個長度小於50...
java求二叉樹葉子節點個數的函式
二叉樹的特性 1.樹的每個節點最多只能有兩個子節點 稱為左子樹與右子樹 2.左子樹上所有結點的值均小於或等於它的根結點的值。3.右子樹上所有結點的值均大於或等於它的根結點的值。4.左 右子樹也分別為二叉排序樹。葉子節點的定義 如果乙個節點既沒有左孩子,也沒有右孩子,則該節點為葉子節點。package...