#include<stdio.h>
#include<string.h>
struct RBtree
{
struct Node
{
int val,color,lr;
Node *fa,*lch,*rch;
Node():fa(NULL),lch(NULL),rch(NULL) {}
Node(int x,int islr,Node *pre):val(x),color(1),lr(islr),fa(pre),lch(NULL),rch(NULL) {}
};
Node *root;
int size;
Node* pre_insert(int x,Node *u,Node *pre,int islr)
{
if(u==NULL)
{
Node *t=new Node(x,islr,pre);
size++;
return t;
}
if(x>u->val) return pre_insert(x,u->rch,u,1);
return pre_insert(x,u->lch,u,0);
}
void insert(int x)
{
if(!size)
{
root->val=x;
size++;
}
else fix(pre_insert(x,root,NULL,0));
}
void fix(Node *u)
{
// if(u==root) u->color=0;
// else
// {
// if(u->fa->color==1)
// {
// if()
// }
// }
}
void print() {
dfs_print(root);
}
void dfs_print(Node *u) {
if(u==NULL) return;
printf("%d ",u->val);
dfs_print(u->lch);
dfs_print(u->rch);
}
};
int main() {
RBtree t1;
t1.insert(2);
t1.insert(3);
t1.insert(3);
t1.insert(45);
t1.insert(346);
t1.print();
}
rbtree
最新推荐文章于 2023-09-08 22:21:15 发布