栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

模板

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

模板

//
#include
using namespace std;
#define T char

struct node
{
    T data;
    node *x,*y;
    node( T in=0,node *xx=NULL,node *yy=NULL ):data(in),x(xx),y(yy) {}
};

// new_node 中序遍历是递增序列
node* new_node( node *root,const T& data )  
{
    if( root==NULL ) 
    {
        root=new node( data ); return root;
    }
    if( data <= root->data )    
        root->x=( root->x,data );
    else                        
        root->y=( root->y,data );
    return root;
}

// find_node
node* find_node( node *root,const T& data )
{
    if( root==NULL ) return NULL;
    if( data==root->data ) return root;

    if( data < root->data )
        return find_node( root->x,data );
    else
        return find_node( root->y,data );
}
node* find_node( node *root,const T& data )
{
    node *now=root;
    while( now && data != now->data )
    {
        if( data < now->data ) 
            now=now->x;
        else
            now=now->y;
    }
    return now;
}

// insert_node
void insert_node( node *root,const T& data )
{
    if( root==NULL )
    {
        root=new node( data ); return ;
    }
    node *now=root;
    node *dad=NULL;
    bool is_x=true;

    while( now )
    {
        dad=now;
        if( data < now->data )  { now=now->x; is_x=1; }
        else                    { now=now->y; is_x=0; }
    }
    if( is_x )  dad->x=new node( data );
    else        dad->y=new node( data );
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/949664.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号