欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

平衡二叉树操作

程序员文章站 2022-05-20 10:21:31
...
void search(node *root,int x)//查询操作
{
	if(root==NULL)
	{
		prinf("空树");
		return;
	}
	if(x==root->data)//找到并访问
		printf("%d/n",root->data);
	else if(x<root->data)//小于根节点,左子树搜索
		search(root->rchild,x);
	else//右子树搜索
		search(root->lchild,x);
}

void L(node *&root)//左旋 A为根,B为右子树  
{
	node* temp=root->rchild;//创立temp指向B;
	root->rchild=temp->lchild;//①将B的左子树赋值给A的右子树
	temp->lchild=root;//②A赋值给B的左子树;
	root=temp;//③B赋值给根;
	updateHeight(root);
	updateHeight(temp);
	
}
void R(node *root)//右旋B为根,A为左子树
{
	node *temp=root->lchild;
	root->lchild=temp->rchild;
	temp->rchild=root;
	root=temp;
	updateHeight(root);
	updateHeight(temp);
}
相关标签: 平衡二叉树