30/09/2018, 18:32

Giúp Về Tìm kiếm cây nhị phân code C-CodeBlock

Em đang làm bài tập về tìm kiếm cây nhị phân nhưng code xong chạy được nữa đường thì đứt, không biết là sai về cấp phát bộ nhớ động hay lỗi gì. Mong mọi người giúp em.

#include <stdio.h>
#include <stdlib.h>
/*
*/
typedef struct node
{
    char infor;
    struct node* left;
    struct node* right;
};

typedef struct node* NODE;

void Init(NODE *root)
{
    *root = NULL;
}

void ThemL(NODE *root, NODE p)
{
    if (*root==NULL)
    {
        *root = p;
        Tao_Cay(root);
    }
    else
        ThemL(&(*root)->left,p);
}
void ThemR(NODE *root, NODE p)
{
    if (*root==NULL)
    {
        *root = p;
        Tao_Cay(root);
    }
    else
        ThemR(&(*root)->right,p);
}
void Tao_Cay(NODE *root)
{
    char e;
    NODE p;
    printf("Nhap vao cay(nhap nut -1 de ket thuc): ");
    scanf("%s",&e);
    if(e == 'X')
        return;
    p = (NODE) malloc (sizeof(struct node));
    p->infor = e;
    p->left = NULL;
    p->right = NULL;
    printf("Them nhanh trai cua %c: 
",p->infor);
    ThemL(root,p);
    printf("Them nhanh phai cua %c: 
",p->infor);
    ThemR(root,p);
}

void NLR(NODE *root)
{
    if((*root) != NULL)
    {
        printf(" %s ", (*root)->infor);
        NLR(&(*root)->left);
        NLR(&(*root)->right);
    }
}



int main()
{
    NODE root;
    Init(&root);
    Tao_Cay(&root);
    NLR(&root);
    return 0;
}
Bài liên quan
0