BST
包含的功能:插入,删除,查找,查找某一结点的后续和前驱,中序遍历和前序遍历
这里,用于实验的二叉树:
//二叉搜索树BST
#include <iostream>
#include <vector>
using namespace std;
class TreeNode{
public:
int key;
TreeNode* left;
TreeNode* right;
TreeNode* p;//指向父节点
public:
TreeNode();
TreeNode(int val);
};
TreeNode::TreeNode()
{
key=0;
left=right=p=NULL;
}
TreeNode::TreeNode(int val)
{
key=val;
left=right=p=NULL;
}
void inorder_tree_walk(TreeNode* x)
{
if(x!=NULL)
{
inorder_tree_walk(x->left);
cout<<x->key<<" ";
inorder_tree_walk(x->right);
}else
return;
}
void preorder_tree_walk(TreeNode*x)
{
if(x)
{
cout<&