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