樹的子結構(二叉樹的建立,遍歷,查詢)(c )

2022-09-04 07:36:11 字數 947 閱讀 5929

輸入兩棵二叉樹a,b,判斷b是不是a的子結構。(ps:我們約定空樹不是任意乙個樹的子結構)

【分析】

典型的二叉樹問題。 

判斷兩個二叉樹的所屬關係,其實還是要從二叉樹的結構特點出發,二叉樹由根節點和左右孩子構成,如果乙個二叉樹是另乙個的子樹,說明這個二叉樹根節點,左右孩子必然存在於另乙個二叉樹中,例如:

在判斷過程中,很明顯用遞迴方法比較簡單,遞迴判斷二叉樹a的根結點和二叉樹b根節點是否相同,找到相同的後,再遞迴判斷左右孩子結構是否一致。

#include #include 

#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()

輸入:889##24##7##7##

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...