生成一棵最少结点,高度为height的AVL树C语言

Tree min_avl_tree(const int height) { int last_node_assigned = 0 ; return gen_tree (height, &last_node_assigned) ; } Tree gen_tree (const int height, int * const lastnode) { Tree tree ; if (height >= 0) { tree = (Node *) malloc (sizeof (Node)) ; tree -> left = gen_tree (height – 1, lastnode) ; tree -> item = ++*lastnode ; tree -> right = gen_tree (height – 2, lastnode) ; return tree ; } else return NULL; }

这个是答案中给的,感觉纯粹是根据AVL树的定义写出来的,理所当然地用到了递归.传递参数时传递了指向int类型的指针,这样就有了类似静态局部变量的效果.总而言之,这个代码我很喜欢.

    原文作者:AVL树
    原文地址: https://blog.csdn.net/Golden_Shadow/article/details/5922312
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞