트리 순회: 전위, 중위, 후위 (preorder, inorder, postorder)

트리 자료구조의 순회 방법으로 전위 순회(preorder), 중위 순회(inorder), 후위 순회(postorder)가 있습니다. 출처 링크 예를 들어 위와 같은 이진 트리가 입력되면, 전위 순회한 결과 : ABDCEFG // (루트) (왼쪽 자식) (오른쪽 자식) ☞ 전루왼오 (∠) 중위 순회한 결과 : DBAECFG // (왼쪽 자식) (루트) (오른쪽 자식) ☞ 중왼루오 (∧) 후위 순회한 더보기…

자바스크립트: 배열 자르기 및 합치기 (예제: 퀵 정렬, 병합 정렬)

배열 자르기 Array.slice(시작인덱스, 끝인덱스) 시작인덱스를 포함하여, 끝인덱스 바로 직전까지 요소를 배열로 반환합니다. var arr = [4, 1, 2, 11, 5, 7, 3] console.log(arr.slice(0, 4)) 결과는 [4, 1, 2, 11] 로 인덱스 0부터 4의 바로 직전까지인 3번까지를 배열로 반환합니다.   배열 합치기 Array.concat(배열1, 배열2, 배열3, …) 파라미터는 1개 또는 그 이상 더보기…

자바(Java) 예제: 재귀 호출(Recursive Call, 재귀 함수, 재귀 알고리즘)

재귀호출 설명 재귀(Recursion) 알고리즘이란 어떠한 문제를 자기 자신을 호출하여 해결하는 과정을 말합니다. 링크 예제 1: 코드 실행 추적 다음은 정보처리산업기사에서 출제된 문제입니다. 다음 코드의 실행 결과는? public class RecursiveExample { public static int recursive(int n) { int i; if (n < 1) return 2; else { i = (2 * 더보기…

자바(Java) 예제: 최대 힙 (Max Heap)

자료구조 학습용 예제입니다. 힙과 배열 힙(Heap): 데이터에서 최대값과 최소값을 빠르게 찾기 위해 고안된 완전 이진 트리(Complete Binary Tree) 완전 이진 트리: 노드를 삽입할 때 최하단 왼쪽 노드부터 차례대로 삽입하는 트리 일반적으로 힙 구현시 배열 자료구조를 활용함 배열은 인덱스가 0번부터 시작하지만, 힙 구현의 편의를 위해, root 노드 인덱스 번호를 1로 지정하면, 더보기…

자바(Java): 양쪽 연결 리스트(Doubly Linked List; 더블 링크드 리스트) [자바 공식 제공 & 알고리즘 학습용 예제]

연결 리스트 (자바 공식 제공) ArrayList()와 사용법은 거의 같습니다. 다만 내부 동작 방식이 다릅니다. package blog.dblinkedlist; import java.util.LinkedList; import java.util.List; public class LinkedListTest { public static void main(String[] args) { List<Object> list = new LinkedList<>(); for(int i = 1; i <= 12; i++) { list.add(i); } // 인덱스 바로 뒤에 더보기…