二叉樹 樹的子結構

2021-07-12 02:36:31 字數 943 閱讀 2914

題目描述:

給定兩棵二叉樹tree1與tree2,現在要求判斷tree2是否為tree1的乙個子樹.

分析:

可以使用遞迴的方法,找到與tree2根節點值相同的tree1的節點n,然後遞迴呼叫函式對以n為根節點的子樹進行判定。

#include 

#include

using namespace std;

#define n 100

struct node

;struct sequeue

;node *maketree();

void displaytree(node *tree);

bool judgmentsubtree(node *tree1, node *tree2);

bool judgetherelation(node *tree1, node *tree2);

void deletetree(node **tree);

int main()

node *maketree() //構建乙個二叉樹,輸入順序為層序

if(q->end % 2 == 1)

q->front += 1;}}

ch = getchar();

}while(getchar() != '\n');

return root;

}void deletetree(node **tree)

*tree = null;

}void displaytree(node *tree)

else

cout << "# ";

}bool judgmentsubtree(node *tree1, node *tree2)

}bool judgetherelation(node *tree1, node *tree2)

二叉樹的子結構

include include stack include queue using namespace std 二叉樹結點 typedef struct bitnodebitnode,bitree 按先序序列建立二叉樹 int createbitree bitree t else return0 輸...

二叉樹的子結構

輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 第一種方法是使用遞迴的思想,第一步通過遞迴找到 跟子樹根節點相同的 結點,找到後 呼叫 函式chen,再依次遞迴比較每乙個 結點 是否相等。這種遞迴的時間複雜度 太高了 在牛客上執行不過去。class solut...

二叉樹的映象 對稱的二叉樹 樹的子結構

三道關於樹的題都可以用遞迴來做,看似很相近 有時候乙個遞迴不能解決問題,要用兩個。乙個滿足條件時繼續判斷,另乙個分支為不滿足條件時繼續,如 樹的子結構 struct treenode class solution bool solve treenode p1,treenode p2 return f...