컴공 일기176
게시글 주소: https://orbi.kr/00058284111

비선형 자료구조 중 가장 Normal한 이진 트리(BinaryTree)를 구현했습니다. 기본적으로, 이진 트리는 자료 탐색이 굉장히 빠르다는 장점을 가지고 있죠. 그러기에, 컴퓨터에서 은근히 "트리"라는 자료를 굉장히 많이 가져다 씁니다.
개인적으로, 트리 중에 가장 끝판왕은 B-Tree가 아닌가 하는데, 이 B-Tree 기반의 주소록 구현은 취준 포트폴리오에 넣어도 경쟁력을 확보할 수 있습니다. 그만큼 어려운 자료구조입니다. 하지만, 그만큼 "효율성"은 극대된다는 것이... 그래서 B-Tree 기반의 주소록을 짤 줄 아는 개발자하고 모르는 개발자는 구분해서 볼 필요가 있다는 말이 나오는 걸까요?
헤더 파일 ; BinaryTree.h
#ifndef BINARY_TREE_H
#define BINARY_TREE_H
#include <stdio.h>
#include <stdlib.h>
typedef struct tagSBTNode
{
struct tagSBTNode* Left;
struct tagSBTNode* Right;
char Data;
}SBTNode;
SBTNode* SBT_CreateNode(char NewData);
void SBT_DestroyNode(SBTNode* Node);
void SBT_DestroyTree(SBTNode* Root);
void SBT_PreorderPrintTree(SBTNode* Node);
void SBT_InorderPrintTree(SBTNode* Node);
void SBT_PostorderPrintTree(SBTNode* Node);
#endif
리소스 파일 ; BinaryTree.c
#include "BinaryTree.h"
SBTNode* SBT_CreateNode(char NewData)
{
SBTNode* NewNode = (SBTNode*)malloc(sizeof(SBTNode));
NewNode->Left = NULL;
NewNode->Right = NULL;
NewNode->Data = NewData;
return NewNode;
}
void SBT_DestroyNode(SBTNode* Node)
{
free(Node);
}
void SBT_DestroyTree(SBTNode* Node)
{
if (Node == NULL)
return;
SBT_DestroyTree(Node->Left);
SBT_DestroyTree(Node->Right);
SBT_DestroyNode(Node);
}
void SBT_PreorderPrintTree(SBTNode* Node)
{
if (Node == NULL)
return;
printf(" %c", Node->Data);
SBT_PostorderPrintTree(Node->Left);
SBT_PostorderPrintTree(Node->Right);
}
void SBT_InorderPrintTree(SBTNode* Node)
{
if (Node == NULL)
return;
SBT_InorderPrintTree(Node->Left);
printf(" %c", Node->Data);
SBT_InorderPrintTree(Node->Right);
}
void SBT_PostorderPrintTree(SBTNode* Node)
{
if (Node == NULL)
return;
SBT_PostorderPrintTree(Node->Left);
SBT_PostorderPrintTree(Node->Right);
printf(" %c", Node->Data);
}
소스 파일 ; Test_BinaryTree.c
#include "BinaryTree.h"
int main()
{
SBTNode* A = SBT_CreateNode('A');
SBTNode* B = SBT_CreateNode('B');
SBTNode* C = SBT_CreateNode('C');
SBTNode* D = SBT_CreateNode('D');
SBTNode* E = SBT_CreateNode('E');
SBTNode* F = SBT_CreateNode('F');
SBTNode* G = SBT_CreateNode('G');
A->Left = B;
B->Left = C;
B->Left = D;
A->Right = E;
E->Left = F;
E->Right = G;
printf("PreorderPrinting...\n");
SBT_PreorderPrintTree(A);
printf("\n\n");
printf("InorderPrinting...\n");
SBT_InorderPrintTree(A);
printf("\n\n");
printf("PostorderPrinting...\n");
SBT_PostorderPrintTree(A);
printf("\n");
SBT_DestroyNode(A);
return 0;
}
실행결과 :
PreorderPrinting...
A D B F G E
InorderPrinting...
D B A F E G
PostorderPrinting...
D B F G E A
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
“민주당 의원들 호남 땅 공개하라”…‘반도체 특혜’ 공방, 부동산으로 번지나 1 0
‘호남 반도체 투자 계획’을 둘러싼 정치권 공방이 ‘호남 토지 보유 현황 공개’...
-
전글 문제가 26수능 세지 킬러(?) 13 0
정답률 21%
-
5수 조언좀요 제발 4 2
작수 언매 확통 생윤 지1 98 96 2 100 91 찍은건 다 틀렸음 서울대...
-
이거 풀어봐바 18 0
흐흐흐흐
-
졸면 안 되는데…!! 3 1
오늘이 어떤 날인데요!!!(아무날도 아니지만..)졸 순 없죠…
-
개힘들다 0 0
맥미니 4개를 연결을 해야해 ㅅㅂ
-
'비하 응원' 배재고, 내일 징계 결정난다 "엄중한 사안…서둘러 회의 진행" 2 1
https://m.sports.naver.com/kbaxxseball/article/...
-
수제샤프 떳다 11 5
사장님이 작업이 생각보다 빨리 끝났다고 하면서 사진 보내줬는데 조온나 이쁘네...
-
김승리 강민철 2 0
재수생. 작년에도 강민철 듣고 올해도 기숙에서 강민철 현강 듣긴 함...ㅠ 뭔가...
-
사설 실모를 풀면서 저는 동생도 공동 사회라 생각하였는데 해설을 보니 아니더라구요...
-
어쩌면 다른 분들에 비할 바는 못되겠지만 너무 먼 길을 빙 둘러 걸어왔어
-
수능은 하방다지기싸움 3 5
이라는 사실을 이번 서프치면서 깨달음 교육청이나 6평마냥 7시까지 쳐자다가 학교가서...
-
이번 평가기준은 성취도가 중요하다고 대학에서 언급했잖아? 우리 학교는 성취도 A가...
-
6섶 쌍사 답지 있는사람 4 0
불러주셍휴ㅠㅠㅠㅠㅜ 6월 서프 동아시아사 세계사
-
혈당스파이크 줄이는법좀 17 0
점심 저녁은 안 그렇고 아침만 그렇네 잡곡밥 2/3공기에 밀가루 반찬...
-
독일 어떡하냐 0 0
또 탈락이네
-
6모 유출 누가 안하냐? 8 0
빨리빨리 컷 좀 내다오
-
서프 국어 어렵네 3 0
엉엉
-
월드컵 두번 더보면 4 0
나도 삼십대 다되있겠네
-
피차일반인데… 2 0
지향점이 조오금 다를 뿐,,,
-
도수분포표 2 0
이번엔 빠르게 올리겠지? 작년에 늦게올리니까 댓글 난리난거 기억난다
-
디랩 다니시는분? 2 0
Q1 밥 맛있나요? Q2 학습 컨텐츠? 에 가보니깐 강K는 없던데 강K는...
-
아 설렌다 1 0
국어 진짜 언>화면 커뮤터짐?
-
어쩌다보니 6 1
수면패턴 정상화 완료
-
수시 반수 고민이 있습니다 5 0
제가 1년 꿇고 고등학교 1년 늦게 들어가서 07이랑 같이 졸업한 06인데...
-
어준규 듣는사람 0 0
Ebs심화정리 좋나요? 얻어가는거 많나요? 6평 생윤 47 사문 47인데 다...
-
6모성적 7 0
바로 12시에 뽑을 수 있나요
-
2-1 성적 ㅇㅈ 6 3
뺑이친보람이 있구나
-
휴학할지 말지 너무 고민이네 4 0
초등교육 너무 안 맞는 것 같아서 도망갈까 싶은데 휴학할지말지 엄청 고민되네...
-
학점이 앞자리가 1이고 5 1
동기들이 반수사실은ㅂ거의 다 알아서 쌩재수나 다름없는 반수는 통한의 개추
-
전체 학점? 3.1 1 0
전공 학점? 3.7..
-
BIS "AI 거품 붕괴, 세계 경제에 최대 위협…자금조달에 약점" 4 2
(서울=연합뉴스) 설원태 기자 = 인공지능(AI) 거품 붕괴, 인플레이션, 재정적...
-
포탈 서버터지고 강평안햇더니 1 0
15분째 성적을못봐요크아아아악
-
영원히살고싶따 11 2
죽는게두려웡 능수를잘치고성공을한담에큰돈을벌어서영생을손에넣고말거시야
-
라고할뻔
-
지고쿠지고쿠 1 0
망햇다망햇어어쩌면좋아
-
6모 도수분포표 언제떠요? 3 0
ㅃㄹㅃㄹ
-
스터디플래너 1 1
다들 모트모트 스터디플래너 무슨 색상 씀??
-
근데 다음 월드컵 존나 슬픈 점 17 1
다음 월드컵이면 내 나이도 거의 서른임..
-
이번에도 독일은 32강 딱인가 0 0
2022에도 그냥 못했던거였나
-
아니 ㅅㅂ 한국축구 32강이 6 0
떨어진거암? 아니 가능성 있다매 왜 ㅅㅂ.. 누가 ㅈㄴ 잘해서 그런건가 그런것더있다든데
-
지금 개발점+ 워크북 다 한 상태인데 뉴런 들어도 얻어갈게 많나요 아니면 스킵해도...
-
유료방컨 달달하다
-
늙크크인데 수능 참전할까요? 5 1
반도체 마려운데 TEAM 언매미적물1지1의 라스트 댄스 갈까
-
파라과이딱 독일vs브라질에 패한 일본 11 0
둘이 붙으면 누가이김? 추축국 내전
-
69수능 때 노래부르면서 들어가는사람 14 0
있음? 아침에 듣거나?? 어떰? 항상 노래들으면서 샤워하고 유튭보면서 밥먹는데...
-
승부차기 존나 재밌네 ㅋㅋ 7 0
-
ㅋㅋㅋㅋㅋㅋㅋㅋ양팀다 지랄하네 2 0
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 둘 다 못 넣네
-
와 승부차기 0 0
한치 앞도 예상할 수 없다...
-
일본따잇 3 0
북한 최대성적 8강 일본 16강 북괴따잇은 대체뭐임

그 예전 공주님 맞으신가요?
네 맞습니다 :)

꼬우! 이 이모티콘 엄청 귀여워요 ㅎㅡㅎ