트리

    [자료구조] 이진 트리의 구현, 순회 (자바/Java)

    이진 트리를 각각 배열과 링크드 리스트로 구현하고 트리의 노드들을 전위순회, 중위순회, 후위순회하는 코드를 구현하였다. 1. 배열 1-1. 트리 구현 배열로 이진 트리를 구현할 때는 배열의 index를 통해 부모와 자식 노드를 확인할 수 있다. 루트 노드의 index를 1로 하고, 같은 층위의 노드들을 순서대로 배열에 삽입하면 부모 노드의 인덱스가 i일 때 자식 노드의 인덱스는 i*2, i*2+1이 된다. 전체 정점의 개수를 입력받고 그 다음 줄에 각 간선의 parent와 child 값을 입력받는다. 13 1 2 1 3 2 4 3 5 3 6 4 7 5 8 5 9 6 10 6 11 7 12 11 13 위 케이스에서 1 2는 부모가 1, 자식 노드가 2임을 의미한다. 이때 루트노드는 부모 노드가 없으니 첫 ..

    [SWEA] 1231 - 중위 순회

    트리가 완전 이진트리 형식으로 주어지기 때문에, 배열로 트리를 만들어서 구현하였다. 입력값 중 index와 해당 알파벳 말고는 사용하지 않아도 구현이 가능하다. (index도 사실 순서대로 들어오기 때문에 필요하지 않다) 배열의 index를 1부터 사용하여 i가 인덱스인 노드의 자식 노드는 각각 2*i, 2*i+1의 인덱스를 가진다. 이를 활용하면 배열을 이진트리처럼 활용하여 전위, 중위, 후위 순회가 가능하다. String[] tree = new String[N + 1]; for (int i = 0; i < N; i++) { StringTokenizer st = new StringTokenizer(br.readLine()); int index = Integer.parseInt(st.nextToken()..

    [자료구조] 트리 & 이진 탐색 트리 Binary Search Tree (자바/Java)

    [자료구조] 트리 & 이진 탐색 트리 Binary Search Tree (자바/Java)

    목차 트리 (Tree) 비-선형 자료 구조 (Non-Linear) 선형 자료 구조: 구조에 저장될 데이터들이 순차적으로 저장되는 형태 ArrayList, LinkedList, Map, Stack, Queue 등 비-선형 자료 구조: 복수의 데이터들이 복수의 데이터들과 연결될 수 있는 구조 Tree 검색 트리 내장 vs 외장 검색 트리 내장 검색 트리: 메인 메모리 내에 존재 외장 검색 트리: 검색 트리가 외부(주로 디스크)에 존재-검색 트리 전체를 메인 메모리에 올려놓고 쓸 수 없는 경우 이진 검색 트리(Binary Search Tree) 특성 각 노드는 키값을 하나씩 갖는다. 이 키값은 모두 다르다. 최상위 레벨에 루트 노드가 있고, 각 노드는 최대 2개의 자식 노드를 갖는다. 임의 노드의 키값은 자기..

    [자료구조] B-Tree

    [자료구조] B-Tree

    목차 B-트리 내장 색인: 메모리에 올려서 사용 (이진 검색 트리) 외장 색인: 메인 메모리 외부에 놓고 사용하는 색인 (B-트리) 색인의 규모가 클 경우 or 메인 메모리가 충분하지 않을 때 디스크에 두고 사용 디스크 접근 시간으로 인한 비효율을 최대한 줄여야 함 B-트리: 디스크 환경에서 사용하기 적합한 외장 다진 검색 트리 최대 M개의 자식을 가질 수 있는 B트리=M차 B트리 $$key_i−1

출처: https://gmnam.tistory.com/157 [Voyager:티스토리]