几种存储结构

一:树:

插入 查找 删除dai'代码

//自己实现二叉搜索树的代码
#include <iostream>
using namespace std;


struct node
{
    int date;
    node* left;
    node* right;
};

void insert(node const *T,int date)
{
    if(NULL==T)
    {
        T=new node;
        T->date=date;
        T->left=NULL;
        T->right=NULL;
        return ;
    }
    else 
    {
        if(x<T->date){
            insert(T->left,x);
        }else{
            insert(T->right,x);
        }
    }
}

bool find(node *T,int date)
{
    if(T->date==date)
        return true;
    if(date>T->date)
        find(T->right,date);
    if(date<T->date)
        find(T->left,date);
    return false; 
}


node * dele(node *T,int date)
{
    if(NULL==T)
        return NULL;
    else if(x<T->left)
        T->left=dele(T->left,date);//T的左子树等于返回值,如果T->left==x,T->left指向变换后的枝 
    else if(x>T->right)
        T->right=dele(T->right,date);
    else if(T->left==NULL)
    {
        node *q=T->right;
        delete T;
        return q;
    }
    else if(T->left->right==NULL)
    {
        node *q=T->left;
        delete T;
        return q;
    }
    else 
    {
        node *q;
        for(q=T->left;q->right->right!=NULL;q=q->right);
        node *r=q->right;
        q->right=r->left;
        r->left=T->left;
        r->right=T->right;
        delete T;
        return r; 
    }
    return T;
}
 

猜你喜欢

转载自blog.csdn.net/qq_41755258/article/details/81433303
今日推荐