이진트리 삽입관련
글쓴이: 여리왕자 / 작성시간: 수, 2005/12/21 - 4:42오전
한동안 짜지 않다가 오랜만에 건드렸더니...
또 했갈리네요...
이진트리 삽입부랑 프린트 함수만 조금 짠 소스인데요...
#include <stdio.h> #include <conio.h> #include <stdlib.h> typedef struct man MAN; struct man { int age; MAN * left; MAN * right; }; MAN * start, * imsi; int init( void ); void insert( void ); void del( void ); void search( void ); void print( void ); void main( void ) { int sel; start = NULL; while ( sel != 5 ) { sel = init(); switch ( sel ) { case 1 : insert(); break; case 2 : del(); break; case 3 : search(); break; case 4 : print(); break; case 5 : sel = 5; } } } int init( void ) { int sel; printf("*** Binary Tree ***\n"); printf("1.insert\n2.del\n3.search\n4.printf\n5.end\n"); printf("select: "); scanf("%d", &sel); return sel; } void insert( void ) { int num; MAN * temp; temp = imsi = start; printf("insert: "); scanf("%d", &num); while ( temp != NULL ) { if ( num < temp->age ) temp = temp->left ; else temp = temp->right ; } temp = ( MAN * )malloc( sizeof( MAN ) ); if ( start == NULL ) start = temp; temp->age = num; temp->left = NULL; temp->right = NULL; } void del( void ) { } void search( void ) { } void print( void ) { printf("%d\t%d\t%d\n\n", start->age, start->left, start->right); }
insert함수 안의 while문이 문제네요...
조건 분기까지 다 돌아가는데... 구조체가 연결이 안되네요...
이전에 링크드 리스트 만질때도 2중 포인터로 어떻게 해서 연결시켰던거 같던데....
생각이 안나네요... 왜 연결이 안되는거죠?
고수님들... 헬프 미~~
Forums:
Re: 이진트리 삽입관련
insert 에 있는 부분입니다 :) 뭔가 이상하지 않나요?
while 를 벗어나고 나면 언제나 temp 에 있는 값은 NULL 입니다... while 안에서 하려고 했던 것들에 어떠한 의미도 부여할 수가 없네요 ...
정도가 되어야 하지 않을까 싶습니다 :)
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
답변 감사합니다
근데 님 소스가... 에러가 뜨는데요... ㅡ,.ㅡ;;
소스 다시 분석하기 귀찮아서 다시 짲는데....
제대로 돌아가네요...
요렇게 짯답니다.... ㅡ.ㅡ;;
아... 끝없는 프로그래밍의 세계... 정복하고파...
댓글 달기