演算法筆記9 4 二叉查詢樹 BST

2021-09-17 21:32:24 字數 2236 閱讀 8939

//search函式查詢二叉查詢樹中資料域為x的結點

//插入乙個資料域為x的新結點  (注意引數root要加引用&)

void insert(node* &root,int x)

if(x==root->data) return;//結點已經存在 不需要插入(二叉查詢樹元素一定不會重複)

else if(xdata) insert(root->lchild,x);

else insert(root->rchild,x);

}

//二叉查詢樹的建立  直接插入即可

//注意相同數字 插入順序不同 生成的二叉查詢樹也可能不同

node* create(int data,int n)

//尋找以root為根結點的樹中的最小權值結點

//刪除以root為根結點的樹中權值為x的結點

//search函式查詢二叉查詢樹中資料域為x的結點

void search(node* root,int x)else

}//插入乙個資料域為x的新結點 (注意引數root要加引用&)

void insert(node* &root,int x)

if(x==root->data) return;//結點已經存在 不需要插入(二叉查詢樹元素一定不會重複)

else if(xdata) insert(root->lchild,x);

else insert(root->rchild,x);

}//二叉查詢樹的建立 直接插入即可

//注意相同數字 插入順序不同 生成的二叉查詢樹也可能不同

node* create(int data,int n)

//尋找以root為根結點的樹中的最小權值結點

node* findmin(node* root)

//刪除以root為根結點的樹中權值為x的結點

void deletenode(node* &root,int x)else if(root->lchild!=null)else

}else if(root->data>x)else

}void preorder(node* root)

int main();

node* root=create(a,8);

preorder(root);

cout<

//輸出:3 1 2 4 8 7 10 23

//說明插入序列不一定是先序序列

return 0;

}

《演算法筆記》9 4 二叉查詢樹

一.定義 1.二叉查詢樹可以是一棵空樹 2.左子樹所有結點的資料域均小於等於根結點,右子樹所有結點的資料域均大於等於根結點 二.基本操作 1.查詢操作 void search node root,int x if x root data printf d n root id else if x ro...

演算法筆記之二叉查詢樹(BST)

樹的結構體 struct nodenode 查詢二叉樹的一系列操作 查詢 node findelement node root,int x else if root number x else 插入,注意形參裡面的引用 bool insertelement node root,int x if ro...

9 4 二叉查詢樹

唯一的坑在於 輸入中可能有重複元素,但是輸出的二叉樹遍歷序列中重複元素不用輸出。題目中沒說。中序遍歷 前序遍歷 後序遍歷才能唯一的確定一棵二叉樹 對 二叉排序樹 而言,相同元素的二叉排序樹中序遍歷一定相同,而不同元素二叉排序樹使用前序遍歷就可以發現不相同,所以只需要前序遍歷兩個二叉樹,比較一下就可以...