알고리즘/자료구조 2

[자료구조] 트리 Tree

트리 Tree 트리의 개념과 특징 DAG(Directed Acyclic Graphs) 방향성 있는 비순환 그래프 loop x, circuit x 노드(node 혹은 vertex)와 링크(link 혹은 edge)의 집합 트리에서 한 노드에서 다른 노드로 가는 경로(path)는 유일하다. N개의 노드를 가지는 나무는 N-1개의 링크를 가진다. 종류 : 이진트리(binary tree), B 트리, 힙(heap), 세그먼트(segment) 등등 트리의 기본 구조 루트 Root : 트리의 제일 위에 있는 노드 경로 Path : 트리 내에서 연결된 노드를 통해 이동할 때의 이동 경로(path는 오직 하나) 자식 노드 children, 부모 노드 parent : 직접 연결되어 있으면서 아래에 있다면 자식, 위에 있다..

[자료구조] 스택 Stack

스택 Stack 스택이란? 스택이나 큐, 트리와 같은 자료구조는 자신이 행위적 측면을 포함하는 자료구조이다. 이런 자료 구조는 제한된 접근 방식을 규정하고 있으며 이를 추상적 자료 구조(Abstrct Data Structure)라고 한다. 스택은 제일 나중에 들어간 것이 제일 먼저 나오는 LIFO(Last In First Out) 구조로 배열이나 연결 리스트(Linked List)로 구현할 수 있다. 배열로 구현하기는 쉽지만 처음에 스택의 크기를 지정해줘야 한다는 단점이 있고, 연결 리스트는 크기를 동적으로 할당하기 때문에 용량에 대해서는 제한(최대 메모리까지)이 없지만 구현하기는 비교적 어렵다는 단점이 있다. 스택의 구성 스택은 기본적으로 데이터를 삽입할 수 있는 push와 스택에서 데이터 하나를 빼내..