본문 바로가기

자료구조

(6)
그래프 (Graph) - 최소비용 신장 트리 (Minimum Cost Spanning Tree) 신장 트리 연결 그래프 G에서 모든 정점들을 포함하며 tree인 부분 graph 방법 임의의 정점에서 출발하여 DFS 또는 BFS로 graph 탐색 시, 정점 v에서 인접하며 방문되지 않은 정점 w가 존재할 때, 간선 (v, w)의 집합 가중치 무방향 graph에서 신장 트리 비용 = 신장 트리에 포함된 간선들의 비용 최소비용 신장 트리 (Minimum Cost Spanning Tree) - 최소의 비용을 갖는 신장 트리 - ex) Kruskal, Prim, Sollin 조건 그래프 내의 간선들만 사용 n-1개의 간선만 포함 사이클 미포함 Kruskal Prim cycle check O cycle check X
그래프 (Graph) 정의 G=(V, E) [ V = 공집합이 아닌 정점(vertex)들의 유한집합 ] [ E = 정점들의 쌍인 간선(edge)들의 집합 ] 무방향 그래프 (Undirected Graph) 방향 그래프 (Directed Graph) V(G1) = {0, 1, 2, 3} E(G1) = {(0,1), (0,2), (0,3), (1,2), (1,3), 2,3)} V(G3) = {0, 1, 2} E(G3) = {, , } = E(G)의 간선 (u, v)에 대해 u와 v는 인접한다(adjacent)라고 하며 간선 (u, v)는 정점 u와 v에 부속된다(incident)고 한다. 완전 그래프 (Complete Graph) n개의 정점을 갖는 무방향 그래프 간선 최대수 = n(n-1)/2 부분 그래프 (Sub Graph)..
이진 탐색 트리 (Binary Search Tree, BST) 정의 모든 원소는 키를 가지며 동일한 키가 없음 왼쪽 sub tree에 있는 key 값 root : 오른쪽 sub tree 탐색 key == root : 탐색 완료 BST 삽입 동일한 key값 가진 원소 있는지 확인 후, 없으면 그 지점에 삽입 BST 삭제 leaf node 삭제 1개 child 갖는 non-terminal node 삭제 2개 child ..
최대 히프 우선 순위 Queue 삽입은 일반적인 queue와 같으나, 삭제는 우선 순위가 가장 높은 것이 먼저 삭제 최대(최소) Heap는 최대(최소) 우선 순위 Queue를 구현하는데 사용 Heap 완전이진트리 → 1차원 배열 사용 기본 연산 : 공백 Heap 생성, 원소 삽입, 원소 삭제 최대히프 삽입 삽입 전 삽입 위치 5 삽입 21 삽입 최대히프 삭제 root 21 삭제 삭제 후 조정 후
트리 (Tree) 기본 용어 Tree 정의 : node로 이루어진 유한집합으로 root node와 나머지 노드 (T_1, T_2, ..., T_n)으로 분리. 이때 T_i는 각각 하나의 tree (sub tree 혹은 부분 tree)라 함 node의 차수(degree) 해당 node의 sub tree 수 tree의 차수 tree에 포함된 node들 중 최대 차수 리프(leaf) 또는 단말노드(terminal) 차수가 0인 node ex) K, L, F, G, M, I, J 비단말노드(non-terminal) 차수가 0이 아닌 node ex) A, B, C, D, E, H 레벨(level) root level이 1일 때 부모-자식은 1 level씩 증가 tree 깊이(depth) 또는 높이(height) tree에 속한 n..
자료구조 개념, 종류 자료구조란? 일련의 자료들을 조직하고 구조화 하는 것 ex) 배열, 연결리스트, 트리, ... 성능 분석 공간 복잡도 - 필요한 공간의 크기 시간 복잡도 - 필요한 실행문의 실행 횟수 1. 배열 (Array) 인덱스와 값 의 쌍으로 구성된 집합. 일련의 연속된 메모리 위치로 정의. 2. 스택 (Stack) LIFO (Last In First Out) : 한쪽 끝(top)에서 모든 삽입과 삭제가 일어나는 list 3-1. 큐 (Queue) FIFO (First In First Out) : 한쪽 끝(rear)에서 삽입이 일어나고 다른 끝(front)에서 삭제가 일어나는 list 3-2. 원형 큐 (Queue) front와 rear가 시계방향으로 이동 4-1. 연결리스트 (Linked List) 순서 list..