프로그래밍<트리 구조 구현>

minsu9101의 이미지

제가 이번에 트리구조를 구현 하려고 합니다.

프로젝트의 내용은 대략 이러합니다.↓
1번 방이 있다.
1번 방에는 10대의 PC가 있다.
각 PC는 주 사용자 3명이 존재한다.

이러한 내용에서

_________________________________________1번방__________________________________________
_____________________↙________↙____________↓_____________↘______________↘
____________________PC1________PC2__________PC3__________PC4____________PC5__.........
________________↙__↓__↘
_________사용자1_사용자2_사용자3__... ... ... ... ... ... ... ... ... ... ... ...

이러한 형식으로 트리의 구조가 만들어지게 되는데

만약 C언어로 트리구조를 구현하려면 부모노드에서 자식 노드를 연결할 때 어떻게 연결해야 하는지 궁금합니다.
그리고, 이건 제가 C언어로 대충 짜본 소스인데 이게 트리라고 할 수 있는 건가요????

#include <stdio.h>
#include <stdlib.h>
 
main()
{
	//printf("test");
	int a = 10, *al, *ar;//*al과 *ar은 왼쪽 노드와 오른쪽 노드를 연결하기 위하여 만든 포인터형 변수
	int b = 2;
	int c = 4;
	int i;
 
	al = &b;
	ar = &c;
 
	printf("현재 부모노드는 10 입니다.\n");
	printf("왼쪽 노드로 가시려면 '1'을 오른쪽 노드로 가시려면 '2'를 입력해 주세요.\n");
	scanf("%d", &i);
 
	if(i == 1)
	{
		printf("왼쪽 노드에는 : %d\n",*al);//왼쪽 노드 출력
	}
	else if(i == 2)//오른쪽 노드 출력
	{
		printf("오른쪽 노드에는 : %d\n",*ar);
	}
	printf("tree\n");
	printf("________________ %d _______________\n", a);
	printf("______ %d _______________ %d ______\n", b, c);// 트리 구조를 표현하기 위하여....
 
	return 0;
}
kgcrom의 이미지

깊이가 2인 간단한 트리라고 할수있습니다.

그런데 깊이가 3이상이 된다면 지금 하신것으로는 안되겠죠?

구조체를 이용하여 구현해보세요 검색만하시면 많은 도움 받으실거에요

흘러가고있는 지금 이 시간에 충실하자.

minsu9101의 이미지

감사합니다 ^^

jeongheumjo의 이미지

다양한 트리를 간단하게 사용하실 수 있습니다.
물론 트리를 사용하는게 아니라 제작해보는게 중요하다면 직접 구현해야겠지만 사용만 할 줄 알아도 된다면 STL 강추합니다.

planetarium의 이미지

약간 망설여지는 태클입니다만...
곱셈 공부하는 사람한테 공학용 계산기 추천하는 수준인것 같습니다.

jeongheumjo의 이미지

망설이지 않으셔도 되구요.
님 말씀처럼 제가 질문자의 글도 정확히 안 읽고 제 위주로 답글을 달아놓은 것 같습니다. 이곳에서 맨날 질문 위주로 활동해와서 한마디라도 도움이 될까 했었습니다. 혹 질문하셨던 분이 STL이 무언가 몰랐는데 제 글을 읽고 그 존재를 알게 된다면 좋지 않을까 생각하면서요 ^^;

minsu9101의 이미지

어쨌든 감사합니다 ~~