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

来源:互联网 发布:sql求和函数 编辑:程序博客网 时间:2024/05/21 17:45

递归尽管效率不高,耗内存,但是对于程序猿来说,写少很多代码,初学者会很喜欢的生气

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

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;}}


0 0