判斷是否為同一棵搜尋樹

2021-09-29 15:47:41 字數 1761 閱讀 2286

#include

#include

using

namespace std;

//讀入 n 和l n代表又多少個元素 l代表要比較多少個序列

typedef

struct student

*btree,tree;

void

init_btree

(btree &l)

;//對樹的初始化

btree insert_node

(btree &l,

int data)

;//將data 插入到 l中

btree creat_tree

(int n)

;//表示建立 4個節點的搜尋樹

intcheck_tree

(btree l,

int e)

;//在t裡面去搜尋e 在查詢的時候我們來看是否有節點以前沒碰到過

intjudge_tree

(btree l,

int n)

;//判斷這n個數是否和已知的樹一致

void

delete_tree

(btree &l)

;//釋放一棵樹

void

resert_flag

(btree &l)

;//將這棵樹的所有flag重新賦值為0

intmain()

else

resert_flag

(new_tree);}

delete_tree

(new_tree)

; new_tree=

null

;system

("pause");

system

("cls");

cout<<

"您想建立幾個節點"

>n;

}return0;

}void

init_btree

(btree &l)

//對樹的初始化

btree insert_node

(btree &l,

int data)

//將data 插入到 l中

else

if(data>l-

>data)

else

if(data>data)

return l;

} btree creat_tree

(int n)

//表示建立 4個節點的搜尋樹

return p;

}int

check_tree

(btree l,

int e)

//在t裡面去搜尋e 在查詢的時候我們來看是否有節點以前沒碰到過

else

if(l-

>data>e)

else

}else

else}}

intjudge_tree

(btree l,

int n)

//判斷這n個數是否和已知的樹一致}}

if(flag==0)

else

}void

delete_tree

(btree &l)

//釋放一棵樹

}void

resert_flag

(btree &l)

//將這棵樹的所有flag重新賦值為0

}

判斷是否同一棵二叉搜尋樹

給定乙個插入序列就可以唯一確定一棵二叉搜尋樹。然而,一棵給定的二叉搜尋樹卻可以由多種不同的插入序列得到。例如分別按照序列和插入初始為空的二叉搜尋樹,都得到一樣的結果。於是對於輸入的各種插入序列,你需要判斷它們是否能生成一樣的二叉搜尋樹。輸入格式 輸入包含若干組測試資料。每組資料的第1行給出兩個正整數...

判斷兩序列是否為同一棵二叉搜尋樹

九度提供的演算法設計思路是 對輸入的數字序列構建二叉排序樹,並對它們進行前序和中序的遍歷,依次比較遍歷結果是否相同,若相同則說明兩棵二叉排序樹相同,否則不同。這個設計思路是沒有問題的,但是有點畫蛇添足的成份。那麼這個 蛇足 是什麼呢?試想一下二叉排序樹的性質,如果對二叉排序樹來說,對其進行中序遍歷,...

判斷不同的序列是否是同一棵搜尋樹?

題意理解 給定乙個插入序列就可以唯一確定一棵二叉搜尋樹。然而,一棵給定的二叉搜尋樹卻可以由多種不同的插入序列得到。例如,按照序列和插入初始為空的二叉搜尋樹,都得到一樣的結果。問題 對於輸入的各種插入序列,你需要判斷它們是否能 生成一樣的二叉搜尋樹。輸入樣例 4 23 1 4 2 3 4 1 2 3 ...