判斷二叉樹相似和二叉樹的遍歷

2021-09-24 21:06:10 字數 856 閱讀 9976

#include#include#includeusing namespace std;

typedef char element;

typedef struct binodebinode,*bitree;

void create_tree(bitree &t)

create_tree(t->lchild);

create_tree(t->rchild); }

int judge_treesimilarity(bitree t1, bitree t2)

else if(t1 ==null || t2 ==null)

left = judge_treesimilarity(t1->lchild, t2->lchild);

right = judge_treesimilarity(t1->rchild, t2->rchild);

return left && right;

}void precede_tree(bitree t)

}int main()

system("pause");

return 0;

}

執行結果:

本人用vs2013編寫由於輸入輸出沒加**所以printf時需要_s.

判斷二叉樹相似時思想:

①判斷兩顆二叉樹是否都為空,如果都為空時則為相似二叉樹

②判斷兩顆二叉樹是否不同時為空,如果不同時為空則不是相似二叉樹

③兩顆樹都不為空時,利用遞迴的思想判斷兩棵樹的左子樹和右子樹是否為相似二叉樹

構建二叉樹 遍歷二叉樹

陣列法構建二叉樹 public class main public static void main string args 用陣列的方式構建二叉樹 public static void createbintree 把linkedlist集合轉成二叉樹的形式 for int j 0 j 最後乙個父節...

二叉樹的遍歷和線索二叉樹

二叉樹的遍歷,所謂二叉樹的遍歷,是指按某條搜尋路徑訪問樹中的每個結點,使得每個結點均被訪問一次,而且僅被訪問一次。由二叉樹的遞迴定義可知,遍歷一棵二叉樹便要決定對根結點n,左子樹l和右子樹r的訪問順序。按照先遍歷再遍歷右子樹的原則,常見的遍歷次序有先,中,後三種遍歷方法,其中序指的是根結點再何時被訪...

二叉樹的遍歷和線索二叉樹

1 遍歷二叉樹 以一定的規則將二叉樹的結點排列成乙個線性序列。2 線索二叉樹 實質就是遍歷一次二叉樹,從而充分利用傳統二叉鍊錶中的空指標,不浪費儲存空間。目的在於利用線索二叉樹可以加快查詢結點的前驅和後繼的速度。3 先序和中序 後序和中序 層序和中序 可以確定唯 一 一 顆二叉樹。只知道先序和後序,...