二叉搜尋樹

2021-07-15 06:48:56 字數 1303 閱讀 4632

#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 解釋 輸入為 ...