Tree* insertBT(Tree* root, Tree* node) { if(!root) { return node; } if (node->key < root->key) { root->left = insertBT(root->left, node); } else { root->right = insertBT(root->right, node); } return root; }
BTNode *insertBT(BTNode **bt, int key) { if (NULL == *bt) { *bt = (BTNode*)malloc(sizeof(BTNode)); (*bt)->key = key; (*bt)->left = NULL; (*bt)->right = NULL; return *bt; } else { if ((*bt)->key >= key) insertBT(&(*bt)->left, key); else insertBT(&(*bt)->right, key); } }
void initBT(BTNode **bt, int n) { int i, key; *bt = NULL; /* clear */ for (i = 0; i < n; i ++) { scanf("%d", &key); insertBT(bt, key); } }