您的位置:首页 > 其它

向TREE—INSERT的一个递归版本致敬

2017-03-06 16:12 113 查看
递归尽管效率不高,耗内存,但是对于程序猿来说,写少很多代码,初学者会很喜欢的


下面来看一下实现的过程:


void TREE_INSERT(struct *x, struct *z)
{
static struct Tree *y = NULL;//一直是指向x的父节点,由于x为根节点,所以根节点
//的父节点为NULL;
static struct Tree *root = x;
//首先考虑根节点
if (x->key != NULL)
{
y = x;
if (z->key < x->key)
{
TREE_INSERT(struct x->lchild, struct z) //传进来的准确来说应该是个地址
}
else
{
TREE_INSERT(struct x->rchild, struct z)
}
}
//如果根节点为NULL怎么办
else
{
z->parent = y;
if (y->key == NULL)
{
root = z;
}
else if (z->key < y->key)
{
y->lchild = z;
}
else
{
y->rchild = z;
}
z->lchild = new strcut Tree[LEN];
z->rchild = new strcut Tree[LEN];
z->lchild = new strcut Tree[LEN] = z->lchild = new strcut Tree[LEN] = NULL;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐