트리구현문제좀 도와주세요!
반혈
밑에 코드는 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
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
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 |