關於二叉樹的建構函式:
在主調函式中並不宣告號指標所指向的空間,在被調函式中可以直接使用。
//二叉樹的定義,以及比較
#include using namespace std;
//二叉樹的二叉鍊錶的節點定義
typedef struct bitnode
bitnode,*bitree;
//建立二叉樹
//若該節點的資料為空,則輸入「-1」
bitree creatbitree(bitree t)
else
return t;
}//比較兩個二叉樹的異同,相同為ture,不同為false
bool cmpbitree(bitree &t1,bitree &t2)
if (null==t1||null==t2)
if (t1->data!=t2->data)
//即認為左右子樹交換後,認為同乙個樹
bool p=cmpbitree(t1->lchild,t2->lchild);
bool q=cmpbitree(t1->rchild,t2->rchild);
bool r=cmpbitree(t1->lchild,t2->rchild);
bool s=cmpbitree(t1->rchild,t2->lchild);
bool result=(p&&q)||(r&&s);
return result;
}int main()
bitnode,*bitree;
//建立二叉樹
//若該節點的資料為空,則輸入「-1」
bitree creatbitree(bitree t)
else
return t;
}//比較兩個二叉樹的異同,相同為ture,不同為false
bool cmpbitree(bitree &t1,bitree &t2)
if (null==t1||null==t2)
if (t1->data!=t2->data)
//即認為左右子樹交換後,認為同乙個樹
bool p=cmpbitree(t1->lchild,t2->lchild);
bool q=cmpbitree(t1->rchild,t2->rchild);
bool r=cmpbitree(t1->lchild,t2->rchild);
bool s=cmpbitree(t1->rchild,t2->lchild);
bool result=(p&&q)||(r&&s);
return result;
}int main()
{ //建立兩個二叉樹t1,t2
cout<<"請輸入t1的資料:"<
二叉樹 二叉樹
題目描述 如上所示,由正整數1,2,3 組成了一顆特殊二叉樹。我們已知這個二叉樹的最後乙個結點是n。現在的問題是,結點m所在的子樹中一共包括多少個結點。比如,n 12,m 3那麼上圖中的結點13,14,15以及後面的結點都是不存在的,結點m所在子樹中包括的結點有3,6,7,12,因此結點m的所在子樹...
建立二叉樹 後序建立二叉樹
由後序遍歷可知,輸入順序是左結點 右結點 子樹根結點 比如輸入如下樹 ab cde 輸入序列為 e d b c a 思路 使用棧,對左結點和右結點進行壓棧 1.當輸入遇到非 且棧中元素大於等於2,則可以確定乙個小三角樹形,並將這個樹根作為下乙個小三角樹形的乙個子節點 2.當輸入遇到非 但棧中元素小於...
樹 二叉樹 滿二叉樹 完全二叉樹 完滿二叉樹
目錄名稱作用根 樹的頂端結點 孩子當遠離根 root 的時候,直接連線到另外乙個結點的結點被稱之為孩子 child 雙親相應地,另外乙個結點稱為孩子 child 的雙親 parent 兄弟具有同乙個雙親 parent 的孩子 child 之間互稱為兄弟 sibling 祖先結點的祖先 ancesto...