递归的方法创建一个有N个结点的完全二叉树

 

 

 

treelink *treecreate(int root)                             //用递归的方法创建一个有N个结点的完全二叉树
{
	treelink *t = (treelink *)malloc(sizeof(treelink));

	t->data = root;
	t->lchild = t->rchild = NULL;

	if(t->data*2 <= N)                                           //判断t是否存在左子树,如果条件成立,则存在左子树
	{
		t->lchild = treecreate(t->data*2);                //递归调用
	}

	if(t->data*2+1 <= N)                                    //判断t是否存在右子树,如果条件成立,则存在右子树
	{
		t->rchild = treecreate(t->data*2+1);              //递归调用
	}

	return t;
}


 

版权所有:华清远见讲师牛利兵

你可能感兴趣的:(华清笔记,数据结构)