프로그래밍/C언어 C++언어 4

C/C++ - 전위 중위 후위 순위를 도입한 이진트리

트리 순회법 - 트리 순회 방법에는 3가지가 있다. - 전위 순회(Preorder Traversal), 중위 순회(Inorder Traversal), 후위 순회(Postorder Traversal) 전위 순회법(Preorder Traversal) 1. 루트 노드부터 시작해서 아래로 내려 오면서 2. 왼쪽 하위 트리를 방문하고 왼쪽 하위 트리의 방문이 끝나면 3. 오른쪽 하위 트리를 방문하는 방식 중위 순회법(Inorder Traversal) - 트리는 하위 트리의 집합이라고 할 수 있고 하위 트리 역시 또 다른 하위 트리의 집합이라고 할 수 있다. - 따라서 아래와 같은 방법으로 탐색할 수 있다. 1. 왼쪽 하위 트리부터 시작해서 2. 루트를 거쳐 3. 오른쪽 하위 트리를 방문하는 방법 - 응용 사례 :..

C/C++ - 함수포인터 (펌자료)

오늘은 함수포인터에 대해서 포스팅을 하도록 하겠습니다. 포인터가 무엇인지는 다들 아실텐데요, 특정 변수에 대한 메모리 주소를 담을 수 있는 변수를 포인터 변수라고 합니다. 그렇다면 함수포인터란, 특정 함수에 대한 메모리 주소를 담을 수 있는 것 이라고 정의할 수 있겠습니다. 함수포인터를 쓰는 이유는 무엇일까요? 1. 프로그램 코드가 간결해집니다. 2. 함수포인터를 배열에 담아서도 사용할 수 있으므로 중복되는 코드를 줄일 수 있습니다. 3. 상황에 따라 해당되는 함수를 호출할 수 있으므로 굉장히 유용합니다. 그 외에도 함수 포인터를 이용하여 콜백함수를 구현할 수 있게 되는 등 편리하고 유용한 코드를 작성할 수 있게 됩니다. 우선 함수포인터의 모양에 대해 알아보도록 하겠습니다. int (*FuncPtr) (..

C/C++ - C를 이용한 간단한 이진 트리 예제

다음은 간단한 이진트리의 예제이며 단순히 공간을 만들고 메인 함수에서 수동적으로 왼쪽과 오른쪽으로 나누고 값을 넣어주는 예제입니다. BinaryTree.h #ifndef __BINARY_TREE_H__ #define __BINARY_TREE_H__ typedef int BTData typedef struct _bTreeNode{ BTData data struct _bTreeNode *left struct _bTreeNode *right }BTreeNode BTreeNode * MakeBTreeNode(void);//빈노드생성함수 BTData GetData(BTreeNode * bt);//bt의data 반환함수 void SetData(BTreeNode * bt, BTData data);//bt의data에입..

반응형