[问题] 二元搜寻树插入节点的循环改递回

楼主: cat99961 (阿汤)   2020-05-04 17:53:42
我要将二元搜寻树的循环改成递回(改原程式的insert_node函数)
原程式如下:
#include <stdlib.h>
struct tree /* 树的结构宣告 */
{
int data; /* 节点资料 */
struct tree *left; /* 指向左子树的指标 */
struct tree *right; /* 指向右子树的指标 */
};
typedef struct tree treenode; /* 树的结构新型态 */
typedef treenode *btree; /* 宣告树节点指标型态 */
/*
作者: firejox (Tangent)   2020-05-04 18:34:00
没接上回传的结点当然会失败你是用指标不是用参考,所以需要加上赋值
作者: elysium5290 (他塌塌塌塌)   2020-05-05 13:04:00
楼上正解,你改写递回但你递回的部分怎么会没有处理return node呢?
作者: firejox (Tangent)   2020-05-05 17:24:00
current->left= insert_node(current->left,value) 这样
作者: elysium5290 (他塌塌塌塌)   2020-05-05 18:35:00
稍微回一下大概btree insert_node(btree root, int value){if(NULL != root){If(root->data > value)root->left = insert_node(root->left, value);elseroot->right = insert_node(root->right, value);return root;}else{btree newnode;//以下大概newnode = malloc()return newnode;}}

Links booklink

Contact Us: admin [ a t ] ucptt.com