이진트리 삽입관련 질문드립니다.
별솔
질문 제목 : 이진트리의 삽입질문 요약 :insert함수로 하나의 값은 입력이되는데 연속으로 insert를 해주면 오류가 발생됩니다.질문 내용 :
#include stdio.h
#include stdlib.h
typedef struct element{
int key;
}element;
typedef struct node* treepointer;
typedef struct node{
element data;
treepointer leftchild, rightchild;
};
treepointer modifiedsearch(treepointer tree, int k) {
treepointer temp;
if (!tree)
return null;
while (tree)
{
temp=tree;
if (k==tree-data.key)
{
return null;
}
if (ktree-data.key)
tree = tree-leftchild;
else
tree = tree-rightchild;
}
return temp;
}
void insert(treepointer *node , int k)
{
treepointer ptr, temp = modifiedsearch(*node, k);
if(temp || !(*node))
{
ptr = (treepointer)malloc(sizeof(node));
ptr-data.key = k;
ptr-leftchild = ptr-rightchild = null;
if(*node){
if(ptr-data.keytemp-data.key)
temp-leftchild = ptr;
else
temp-rightchild =ptr;
}
else *node = ptr;
}
}
treepointer root=null;
int main()
{
insert(&root, 5);
insert(&root, 7);
return 0;
}