전체 글

전체 글

    [자료구조] 덱 (Deque)

    덱 (Deque) 덱? 덱(Deque)이란 Double-Ended Queue의 줄임말이다. 즉, 앞쪽 front와 뒤쪽 rear에서 모두 삽입과 삭제가 가능한 큐를 의미한다. 덱 ADT 객체 전단과 후단 양쪽에서의 삽입과 삭제를 허용하는 동일한 자료형의 요소들의 모음 연산 addFront(x) : 요소 x를 덱의 맨 앞에 추가 addRear(x) : 요소 x를 덱의 맨 뒤에 추가 deleteFront() : 큐의 맨 앞의 요소를 삭제하고 반환 deleteRear() : 큐의 맨 뒤의 요소를 삭제하고 반환 getFront() : 큐의 맨 앞의 요소를 삭제하지 않고 반환 getRear() : 큐의 맨 뒤의 요소를 삭제하지 않고 반환 isEmpty() : 큐가 비어있으면 true 아니면 false 반환 isF..

    [자료구조] 큐 (Queue) - 피보나치 수열 계산, BFS

    1. 큐 (Queue) 1.1 큐? 큐(Queue)란 먼저 들어오는 데이터가 먼저 나가는 FIFO(First In First Out) 형식의 자료구조이다. 놀이동산의 놀이기구를 타기 위해 줄을 서있는 모습을 생각하면 이해하기 편할 것이다. 1.2 큐 ADT 객체 FIFO 접근방법을 유지하는 동일한 자료형의 요소들의 모음 연산 enqueue(x) : 요소 x를 큐의 맨 뒤에 추가 dequeue() : 큐의 맨 앞의 요소를 삭제하고 반환 peek() : 큐의 맨 앞의 요소를 삭제하지 않고 반환 isEmpty() : 큐가 비어있으면 true 아니면 false 반환 isFull() : 큐가 가득 차 있으면 true 아니면 false 반환 size() : 큐 내의 모든 요소 개수를 반환 display() : 큐 ..

    [자료구조] 스택 (Stack) - 괄호검사, 수식계산, DFS

    1. 스택 (Stack) 1.1 스택이란? 스택(Stack)이란 데이터의 삽입과 삭제를 한 쪽(top)에서만 할 수 있는 LIFO(Last In First Out) 형식의 자료구조이다. LIFO(Last In First Out)란 후입선출 방식이라고 하며, 가장 최근에 들어온 데이터가 가장 먼저 나가는 것을 의미한다. 1.2 스택 ADT 객체 LIFO 접근방법을 유지하는 동일한 자료형의 요소들의 모음 연산 push(x) : 요소 x를 스택의 맨 위에 추가 pop() : 스택의 맨 위의 요소를 삭제하고 반환 peek() : 스택의 맨 위의 요소를 삭제하지 않고 반환 isEmpty() : 스택이 비어있으면 true 아니면 false 반환 isFull() : 스택이 가득 차 있으면 true 아니면 false ..

    [자료구조] 배열과 클래스 (Array & Class)

    배열 (Array) 배열(Array)은 같은 자료형의 변수가 연속적인 형태로 구성된 구조이다. 각각의 원소에는 순서대로 index가 붙으며, 원소들이 연속적으로 배치되어 있기에 임의의 index에 접근(access)하는데 걸리는 시간복잡도는 O(1)이다. 따라서 배열은 임의 접근(Random Access)가 가능하다. 배열 ADT 객체 - 인덱스와 값 의 쌍으로 구성된 집합. 연산 - create(n) : n개의 요소를 가지는 배열 생성 - retrive(A, i) : A배열에서 i번째 index를 가지는 값 반환 - store(A, i, v) : A배열에 쌍을 삽입 C++에서의 배열 // 만약 배열이 없는 경우 int score1; int score2; ... int score10; // 배열 선언 i..

    [자료구조] 자료구조와 알고리즘, 시간복잡도(Big-O 표기법)

    Data(자료)란? facts and statistics collected together for reference or analysis 참고 또는 분석을 위해 수집된 사실과 통계. 즉, 데이터는 현실 세계로부터 수집되는 사실(fact)이나 값(value) 또는 이들의 집합이며 가공되기 전의 상태를 뜻한다. 특정 목적을 위해 데이터를 가공하고 해석한 후의 상태를 우리는 정보(information)라고 한다. 자료구조(Data Structure)란? 자료구조란 데이터를 표현하거나 저장하는 방법이다. 효과적으로 설계된 자료구조는 프로그램 실행시간을 단축하고 메모리 용량을 최소한으로 사용하며 연산을 수행하도록 해준다. 따라서 프로그램을 설계할 때 가장 우선적으로 어떠한 종류의 자료구조를 선택해야 할지 고려해야..