#include
using namespace std;
typedef struct node//節點結構
node;
node *findnode(node* root,int num)//找到某個資料的指標
}node *
max(node* s)//找到最大值
node *
min(node* s)//找到最小值
void initial(node* s)//初始化節點
node* root=(node*)new node;
bool rootcount=
1;//判斷插入的是否為根節點
void insertnode(int num)//插入乙個資料
node *s=root,*p=
null;
node *q=(node*)new node;
initial(q);
q->
data
=num;
while(s!=
null)
q->father=p;
if(p==
null)
return;
else
if(num
data)
p->left=q;
else p->right=q;
}void deletenode(node* root,int num)//刪除乙個資料
else
if(s->left==
null
&&s->right!=
null)
else
if(s->left!=
null
&&s->right==
null)
else
if(p->right!=
null)
p->right->father=p->father;
s->
data
=p->
data;
}}int treeheight=
0;void midthrough(node* s)//輸出(中序遍歷)(按公升序排列)
midthrough(s->left);
cout<<
"data:"
<
data
<<
" treeheight:"
right);
treeheight--;
}int main()
二叉搜尋樹 二叉搜尋樹
題目 二叉搜尋樹 time limit 2000 1000 ms j a others memory limit 32768 32768 k j a others total submission s 6945 accepted submission s 3077 problem descripti...
二叉搜尋樹 修剪二叉搜尋樹
第一反應是重構,看來別人的解答發現,其實不用重構那麼複雜。treenode trimbst treenode root,int low,int high if root val high 下一層處理完左子樹的結果賦給root left,處理完右子樹的結果賦給root right。root left ...
樹 二叉樹 二叉搜尋樹
給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。假設乙個二叉搜尋樹具有如下特徵 節點的左子樹只包含小於當前節點的數。節點的右子樹只包含大於當前節點的數。所有左子樹和右子樹自身必須也是二叉搜尋樹。示例 1 輸入 2 13輸出 true 示例 2 輸入 5 14 3 6輸出 false 解釋 輸入為 ...