rbtree

#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();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值