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

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의 이미지

어쨌든 감사합니다 ~~

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.