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