C, C++ Binary Tree(이진 트리) 만들기 (version 1)
C와 C++로 Binary Tree 구현하기 C로 Binary Tree를 구현하고 C++로 바꿔보는 것 까지 해보겠다. Binary Tree라 하면, 각각의 노드가 최대 두 개의 자식 노드를 가지는 Tree 자료 구조로, 왼쪽 자식 노드와 오른쪽 자식 노드로 나뉜다. 트리에 7, 3, 2, 6, 9, 5, 8의 데이터를 넣는다고 해보자 Tree가 처음에 비어있을 경우, 노드를 하나 할당해주고 트리가 해당 노드를 가리키게 한다. 그 다음 3을 넣는다면 트리가 가리키는 노드들을 타고 내려가면서 노드들이 가지는 data 값과 새로 들어올 data값(=3)을 비교한다. 들어올 값이 비교하는 노드의 데이터 값보다 작다면 lchild 쪽으로, 크다면 rchild 쪽으로 간다. lchild나 rchild가 NULL을..
2023. 4. 7.
Function Pointer (함수 포인터)
C와 C++의 Function Pointer 제도에 대해서 무엇인지 알아보겠다. Function Pointer란, 함수 포인터 즉, 변수가 아닌 함수를 가리키는 포인터를 뜻한다. Function Pointer를 쓰는 이유로는 콜백 함수(Callback function = 어떤 이벤트에 의해 호출되어지는 함수, 다른 함수에 매개변수로 넘겨진 함수)를 구현할때 사용된다. 간단한 덧셈, 뺄셈, 곱셈, 나눗셈을 하고 싶을 때, 함수를 필요에 따라 그때 그때 불러오는 프로그램을 짜보며 자세히 보겠다. #include void add(int x, int y) { printf("%d + %d = %d\n", x, y, x+y); } void subtract(int x, int y) { printf("%d - %d =..
2023. 3. 28.