operator overloading 2

이진 탐색 트리(Binary Search Tree), 화살표 연산자 오버로딩(-> operator overloading, arrow operator overloading)

이진 탐색 트리 규칙 : 작으면 왼쪽, 크면 오른쪽 전위 순회(preorder traversal) : root -> left -> right 순서 중위 순회(inorder traversal) : left -> root -> right 순서 후위 순회(postorder traversal) : left -> right -> root 순서 완전 이진 트리(Complete binary tree) : 마지막 레벨 빼고 모두 차있는 경우 포화 이진 트리(perfect binary tree) : 마지막 레벨까지 모두 차있는 경우 편향 트리(skewed binary tree) : 한쪽으로만 자라는 tree. 예를 들어 아래와 같은 tree insert, find는 현재 노드보다 큰지, 작은지에 따라 좌우 케이스로 나눠..

C++ 연산자 오버로딩(Operator overloading)

C++에서 연산자 오버로딩이란 C에서 정의하고 있는 연산자( +, -, /, *, ++, -- 등)의 동작을 다시 정의하는 것을 의미한다. 참고로 C언어는 연산자 오버로딩을 지원하지 않는다. C언어에서 정의하고 있는 연산자의 동작이란 우리가 평소에 사용하는 것과 같다. 예를 들어 +, - 연산자들은 숫자에 대해서만 정의되어 있다. 하지만 C++에서는 연산자 오버로딩을 통해 클래스 객체끼리도 그런 연산들이 가능하게 해준다. 형태는 간단하게 반환타입 operator 연산자 ( ) 방법은 2가지가 있다. 1. 멤버 함수에 의한 연산자 오버로딩 2. 전역 함수에 의한 연산자 오버로딩(클래스 정의에서 friend 선언 필요) 먼저 멤버 함수를 이용해서 연산자 오버로딩을 하는 경우를 보자 class Point { ..

공부/C || C++ 2021.07.22