輸入兩棵二叉樹a,b,判斷b是不是a的子結構。(ps:我們約定空樹不是任意乙個樹的子結構)
【分析】
典型的二叉樹問題。
判斷兩個二叉樹的所屬關係,其實還是要從二叉樹的結構特點出發,二叉樹由根節點和左右孩子構成,如果乙個二叉樹是另乙個的子樹,說明這個二叉樹根節點,左右孩子必然存在於另乙個二叉樹中,例如:
在判斷過程中,很明顯用遞迴方法比較簡單,遞迴判斷二叉樹a的根結點和二叉樹b根節點是否相同,找到相同的後,再遞迴判斷左右孩子結構是否一致。
#include #include輸入:889##24##7##7###include
#include
#include
#include
#include
using
namespace
std;
struct
treenode
};//
按前序遍歷輸入二叉樹中結點的值,構建二叉樹
void creat(treenode **t)
}//輸出前序遍歷
void print(treenode* &root)
//輸出中序遍歷
void print1(treenode* &root)
//輸出後序遍歷
void print2(treenode* &root)
class
solution
bool hassubtree(treenode* proot1,treenode*proot2)
return
result;
}};int
main()
89##2##
輸出:
二叉樹的建立 遍歷1 建立二叉樹
談二叉樹,如果二叉樹都沒有正確的建立出來,那豈不是紙上談兵!括號表示式 表示方法 1.括號 括號內的東西是括號前的元素的孩子 2.逗號 逗號是為了區分左右孩子 演算法分析 給出乙個如上的括號表示式 a b d g e,f 再利用棧這個資料結構,分析一下 掃瞄整個括號表示的字串,這個字串中只有四種字元...
二叉樹 樹的子結構
題目描述 給定兩棵二叉樹tree1與tree2,現在要求判斷tree2是否為tree1的乙個子樹.分析 可以使用遞迴的方法,找到與tree2根節點值相同的tree1的節點n,然後遞迴呼叫函式對以n為根節點的子樹進行判定。include include using namespace std defi...
二叉樹的建立與遍歷 二叉樹遍歷模板)
初學二叉樹,感覺之前鍊錶掌握不熟練導致接受有點難,現在做一些總結。本題其實就是根據給出的前序遍歷 包括空子樹 寫出相應的前序 中序和後序遍歷。廢話不多說,先看看題目 description 下面給出了教材中演算法6.4所示的演算法。status createbitree bitree t retur...