二叉搜索树数据结构完整代码
时间: 2023-07-07 22:38:33 浏览: 142
下面是二叉搜索树的完整代码实现(使用C++语言):
```c++
#include <iostream>
using namespace std;
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
class BST {
public:
BST() {
root = NULL;
}
void insert(int val) {
if (root == NULL) {
root = new TreeNode(val);
return;
}
TreeNode* cur = root;
while (cur != NULL) {
if (val < cur->val) {
if (cur->left == NULL) {
cur->left = new TreeNode(val);
return;
} else {
cur = cur->left;
}
} else {
if (cur->right == NULL) {
cur->right = new TreeNode(val);
return;
} else {
cur = cur->right;
}
}
}
}
bool find(int val) {
TreeNode* cur = root;
while (cur != NULL) {
if (val == cur->val) {
return true;
} else if (val < cur->val) {
cur = cur->left;
} else {
cur = cur->right;
}
}
return false;
}
void inOrder() {
inOrder(root);
}
private:
TreeNode* root;
void inOrder(TreeNode* root) {
if (root == NULL) {
return;
}
inOrder(root->left);
cout << root->val << " ";
inOrder(root->right);
}
};
int main() {
BST bst;
bst.insert(5);
bst.insert(3);
bst.insert(7);
bst.insert(1);
bst.insert(9);
bst.inOrder(); // 输出 1 3 5 7 9
cout << endl;
cout << bst.find(5) << endl; // 输出 1
cout << bst.find(4) << endl; // 输出 0
return 0;
}
```
其中,TreeNode是二叉搜索树的节点结构体,BST是二叉搜索树的类,包含了插入、查找以及中序遍历等操作。在main函数中,我们可以进行一些简单的测试,以验证BST类的正确性。
阅读全文