二叉树实现C.

时间:2015-10-10 18:44:04

标签: c pointers binary-tree

每次调用insert函数时,insert()函数中的't'指针都设置为NULL。是否与搞乱指针有关?

    int main() {
    int num, i;
    tree *t;
    t = NULL;
    for(i = 0; i < 5; i++) {
        scanf("%d", &num);
        insert(t, num);
    }
    //inorder(t);
    return 0;
}

插入功能如下:

    void insert(tree *t, int num) {
        int flag;
        tree *p, *q;
        tree *temp = (tree *)malloc(sizeof(tree));
        temp->data = num;
        temp->left = NULL;
        temp->right = NULL;

        if(t == NULL) {
            t = temp;
            printf("Hello");
            return; 
        }
        printf("%d", t->data);
        p = t;
        while(p) {
            q = p;
            if(p->data <= num) {
                p = p->right;
                flag = 1;
            }   
            else {
                p = p->left;
                flag = 0;
            }   
        if(flag == 1)
            q->right = temp;
        else
            q->left = temp; 

        }
    }

我的树结构如下:

    typedef struct tree {
            int data;
            struct tree *left, *right;
        }tree;

0 个答案:

没有答案
相关问题