[자료구조] 14. 트리 (Tree)
트리 (Tree) 트리(Tree)자료구조는 노드(Node,정점)들이 엣지(Edge, 간선)으로 연결된 데이터의 배치를 추상적으로 보여주는 계층적 구조이다. 노드: 트리의 기본 단위이다. 엣지: 노드와 노드 사이를 연결하는 요소이다. 트리 내의 노드 수보다 엣지 수는 하나가 적다. 따라서, 노드 수가 \(N\)이라면...
트리 (Tree) 트리(Tree)자료구조는 노드(Node,정점)들이 엣지(Edge, 간선)으로 연결된 데이터의 배치를 추상적으로 보여주는 계층적 구조이다. 노드: 트리의 기본 단위이다. 엣지: 노드와 노드 사이를 연결하는 요소이다. 트리 내의 노드 수보다 엣지 수는 하나가 적다. 따라서, 노드 수가 \(N\)이라면...
연산자 오버로딩(Operator Overloading) 연산자 오버로딩(Operator Overloading)은 프로그래밍에서 사용자가 직접 정의한 클래스 객체에 +, -, *와 같은 일반 연산자의 기능을 재정의하여 연산 가능한 상태로 만드는 기법이다. 예를 들어, 복소수(Complex) 객체에서 필요한 +연산을 아래와 ...
스페셜 메소드 사용자가 이름을 직접 명시하여 호출하지 않아도 자동으로 호출되는 메소드를 가리켜 스페셜 메소드(special methods)라고 한다. 이러한 메소드들은 언더스코어(__) 두 개로 시작하고 끝나는 이름을 가진다. 예를 들자면 다음과 같다. __len__: 컨테이너 객체의 길이를 반환할 때 자동으로 ...
우선순위 큐 (Priority Queue) 우선순위 큐(Priority Queue)는 일반적인 큐와 달리 선입선출(FIFO, First-In First Out) 방식을 따르지 않고, 우선순위가 높은 데이터 원소가 먼저 큐에서 빠져나오는 방식이다. 예를 들어 다음과 같이 [6, 2, 3, 5] 정수형 원소들을 순차적으로 en...
isinstance 함수 isinstance함수는 객체의 클래스 유형을 확인하는 함수이다. 즉, “이 객체는 저 class에 의해서 생성된 객체인가?”라는 질문에 대한 답을 해주는 함수이다. isinstance(object, classinfo) 다음의 예시와 같이 object에 위치한 객체의...
큐(Queue)의 활용 큐(Queue)는 자료를 생성 작업과 자료를 이용하는 작업간의 관계를 이어주는 멀티스레딩 또는 멀티프로세싱 환경에서 주로 사용한다. 편의상 다음과 같이 임의로 명명하면서 설명을 진행한다. Producer: 자료를 생성하고, 생성한 데이터를 큐에 넣는 쓰레드(Enqueue) Cust...