체인식 두 갈래 나무의 생성

1374 단어 두 갈래 나무
노드 구조
typedef struct node(
    int data;
    struct node *left;
    struct node *right;
)BTnode;

① 루트 노드 생성하기
root=(BTnode *)malloc(sozeof(BTnode));
root->data=a[0];
root->left=root->right=NULL; 

② 추가 노드 생성하기
for(int i=1;idata=a[i];
    p->left=p->right=NULL;
    c=root;
    while(c){
        pa=c;
        if(c->data>p->data)
            c=c->left;
        else
            c=c->right;
    }
    if(pa->data>p->data)
        pa->left=p;
  else
      pa->right=p;
}

두 갈래 트리 전체 코드 만들기
#include
#include
typedef struct node{
    int data;
    struct node *left,*right;
}BTnode;
BTnode *CreatBTree(int a[],int n)
{
    BTnode *root,*c,*pa,*p;
    // 
    root=(BTnode*)malloc(sizeof(BTnode));
    root->data=a[0];
    root->left=root->right=NULL;
    for(int i=1;idata=a[i];
        p->left=p->right=NULL;
        c=root;
        while(c){
            pa=c;
            if(c->data>p->data)
                c=c->left;
            else
                c=c->right;
        }
        if(pa->data>p->data)
            pa->left=p;
        else
            pa->right=p;
    }
    return root;
}

좋은 웹페이지 즐겨찾기