반응형

참고자료

 

https://jung-story.tistory.com/28

 

자료구조 (이진트리) (binary tree)

이번에는 자료구조 이진트리에 대해서 알아보도록 하겠습니다. 이진트리에 대해서 이해를 한 다음에 코드를 작성해 보도록 하겠습니다. 이진트리(Binary Tree) 개념과 구조 트리의 모든 노드의 차수를 2 이하로 제..

jung-story.tistory.com

 

 


개요

 

이번에는 이진트리의 각각 노드마다 크기를 구현 해 보도록 하겠습니다.

 


이진트리 노드사이즈 구현

 

#include <stdio.h>

typedef struct treeNode {
	int size;
	struct treeNode* lchild;
	struct treeNode* rchild;
}treeNode;

treeNode* makeNode(int size, treeNode* lchildeNode, treeNode* rchildNode) {

	treeNode* Node = (treeNode*)malloc(sizeof(treeNode));
	Node->size = size;
	Node->lchild = lchildeNode;
	Node->rchild = rchildNode;
	return Node;
}

int FolderSizeLRD(treeNode* Node) {
	int LSize = 0, RSize = 0;
	if (Node) {
		LSize = FolderSizeLRD(Node->lchild);
		RSize = FolderSizeLRD(Node->rchild);
		return (Node->size + LSize + RSize);

	}
	else {
		return 0;
	}
}


int main(void) {
	treeNode* n7 = makeNode(120, NULL, NULL);
	treeNode* n6 = makeNode(30, NULL, n7);
	treeNode* n5 = makeNode(50, NULL, NULL);
	treeNode* n4 = makeNode(70, NULL, NULL);
	treeNode* n3 = makeNode(55, NULL, n6);
	treeNode* n2 = makeNode(80, n4, n5);
	treeNode* n1 = makeNode(120, n2, n3);

	printf("%d", FolderSizeLRD(n1));

	return 0;
}

 


실행화면

노드크기 들을 다 더한 값

 


 

 

반응형

+ Recent posts