设为首页 加入收藏

TOP

c++实现二叉搜索树
2015-07-24 06:00:10 来源: 作者: 【 】 浏览:9
Tags:实现 搜索

自己实现了一下二叉搜索树的数据结构,记录一下:

#include 
  
   

using namespace std;

struct TreeNode{
    int val;
    TreeNode *left;
    TreeNode *right;
    TreeNode(int value) { val=value; left=NULL; right=NULL; }
};


class SearchTree{

public:
    SearchTree();
    ~SearchTree();
    void Destory(TreeNode *);
    void Insertnode(int);
    void Preorder(TreeNode *);
    void Inorder(TreeNode *);
    void Postorder(TreeNode *);
    void Predisplay();
    void Indisplay();
    void Postdisplay();
private:
    TreeNode *root;

};

SearchTree::SearchTree()
{
    root=NULL;
}

SearchTree::~SearchTree()
{
    cout<<"析构二叉搜索树:"<
   
    left); Destory(node->right); cout<
    
     val<<" "; delete node; } } void SearchTree::Insertnode(int value) { if(root==NULL) root=new TreeNode(value); else { TreeNode *p,*pre; pre=p=root; while(p) { if(p->val==value) return; else if(p->val>value) { pre=p; p=p->left; } else { pre=p; p=p->right; } } p=new TreeNode(value); if(pre->val>value) pre->left=p; else pre->right=p; } } void SearchTree::Predisplay() { Preorder(root); } void SearchTree::Preorder(TreeNode *root) { if(root) { cout<
     
      val<<" "; Preorder(root->left); Preorder(root->right); } } void SearchTree::Indisplay() { Inorder(root); } void SearchTree::Inorder(TreeNode *root) { if(root) { Inorder(root->left); cout<
      
       val<<" "; Inorder(root->right); } } void SearchTree::Postdisplay() { Postorder(root); } void SearchTree::Postorder(TreeNode *root) { if(root) { Postorder(root->left); Postorder(root->right); cout<
       
        val<<" "; } } int main() { SearchTree t; int a[]={7,4,2,3,15,35,6,45,55,20,1,14}; int n=sizeof(a)/sizeof(a[0]); cout<<"构造二叉搜索树:"<
        
         

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇HDU1717--小数化分数2 下一篇Acdreamoj1116(Gao the string!..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: