수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

트리구현문제좀 도와주세요!

반혈

2023.04.01

밑에 코드는 hw4.dat파일을 읽어서 이중탐색트리를 생성하고 inorder로 출력하는 프로그램인데요.
아무리 해봐도 hw4.dat파일의 내용이 거꾸로 밖에 출력되지 않네요.
뭐가문제인가요? 수정해야할부분과 왜 틀렸는지좀 알려주세요!

[inorder]
#include stdio.h
#include stdlib.h
#include string.h
#include memory.h

typedef struct{
char number[5];
char name[10];
float height;
} element;

typedef struct TreeNode{
element key;
struct TreeNode *left, *right;
} TreeNode;

int compare(element e1, element e2){
if(e1.numbere2.number)
return -1;
else if(e1.numbere2.number)
return 1;
else
return 0;
}

void display(TreeNode *p){
if(p!=NULL) {
display(p-left);
printf(%s , p-key.number);
printf(%s, p-key.name);
printf(%6.1f\n, p-key.height);
display(p-right);
}
}

void insert_node(TreeNode **root, element key) {
TreeNode *p, *t;
TreeNode *n;
t = *root;
p = NULL;
while (t != NULL){
if( compare(key, t-key)==0 ) return;
p = t;
if( compare(key , t-key)0 ) t = t-left;
else t = t-right;
}
n = (TreeNode *) malloc(sizeof(TreeNode));
if( n == NULL ) return;
n-key = key;
n-left = n-right = NULL;
if( p != NULL )
if( compare(key, p-key)0 )
p-left = n;
else p-right = n;
else *root = n;
}

void main(){
element e={0,};
TreeNode *root=NULL;
FILE *fp = fopen(hw4.dat, r);
while(!feof(fp)){
fscanf(fp, %s, e.number);
if(e.number[0]==NULL) break;
fscanf(fp, %s, e.name);
fscanf(fp, %f, &e.height);
insert_node(&root, e);
}
display(root);
}

[hw4.dat]
3214 김선생 176.5
3560 정일남 179
1234 최성준 187.3
4440 박수정 180
3350 이이 167
1100 하이유 190
5500 주말 188
3780 기가차 177

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

번호 제 목 글쓴이 날짜
2697432 서버 만드는 함수에서 궁금한게있어요~ 파랑 2025-06-07
2697401 열혈강의 문제오류 (1) 꿈 2025-06-07
2697374 기초적인 C언어 프로그래밍 입니다. 얼 2025-06-07
2697341 좌우대칭 문제인데 Q가 입력되면 종료가 되야하는데 되지않습니다 무지개 2025-06-07
2697314 fprintf와 fscanf 로 파일 입출력 할떄 밝음이 2025-06-06
2697293 툴 소스 뽑아내는법 도움 2025-06-06
2697264 소소한거 두어가지 질문할께요~ (8) 별솔 2025-06-06
2697235 scanf로 인풋 받을 때?! 보담 2025-06-06
2697207 열혈강의 연습문제 질문이요~ (2) 맥적다 2025-06-05
2697182 strcmp, strtok - 어떤 기능을 하는지... 루다 2025-06-05
2697129 [질문] 아래 저축액을 계산하는 프로그램 ㅠ 추가 질문 (7) 찬늘 2025-06-05
2697072 쌩초보 질문! (1) 얀 2025-06-04
2697050 도움부탁드립니다.. 화이트 2025-06-04
2697023 gotoxy함수, 어떻게 사용하죠? (3) 적송 2025-06-04
2696994 c언어를 막 시작한 초보인데 질문이 있어용 ㅠㅠ (2) 귀1여운렩 2025-06-03
2696944 윈도우 콘솔프로그램 질문드립니다 (2) 꽃님이 2025-06-03
2696882 c언어 입력받기 질문 입니다 (2) 흰추위 2025-06-02
2696853 문자열은 정적메모리에 할당된다고 하는데 정적메모리가 뭡니까?? (6) 다온 2025-06-02
2696799 c c++언어입문전에 파이톤이나 자바스크립트배워두면.. (2) 앨런 2025-06-02
2696747 size of 연산자에 대해 질문이 있습니다. (3) 유진공주 2025-06-01
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com