본문 바로가기

Computer Science/Data Structure3

[Data Structure] 큐(Queue) 큐(Queue)란? 큐(queue)는 먼저 집어 넣은 데이터가 먼저 나오는 FIFO(First In First Out)구조의 자료구조이다. 나중에 집어 넣은 데이터가 먼저 나오는 스택과는 반대되는 개념이다. 큐(Queue)의 연산 큐는 아래와 같은 연산들이 필요하다. enqueue(): 큐의 맨 뒤(rear)에 데이터를 삽입한다. dequeue(): 큐의 맨 앞(front)에서 데이터를 삭제한다. peek(): 큐의 맨 앞(front)의 데이터를 제거하지 않고 반환한다. isEmpty(): 큐가 비었다면 1을 반환하고, 그렇지 않다면 0을 반환한다. 여기서 front는 큐의 맨 앞의 위치(인덱스)를 의미하고, rear는 큐의 맨 뒤의 위치(인덱스)를 의미한다. 큐(Queue)의 종류 Linear Queu.. 2022. 5. 23.
[Data Structure] 스택(Stack) 스택(Stack)이란? 스택(stack)은 제한적으로 접근할 수 있는 나열 구조이다. 그 접근 방법은 언제나 목록의 끝에서만 일어난다. 스택은 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조(LIFO - Last In First Out)으로 되어 있다. 자료를 넣는 것을 '밀어넣는다' 하여 푸쉬(push)라고 하고 반대로 넣어둔 자료를 꺼내는 것을 팝(pop)이라고 하는데, 이때 꺼내지는 자료는 가장 최근에 푸쉬한 자료부터 나오게 된다. 이를테면, a부터 b와 c를 순서대로 넣은 다음 자료를 하나씩 꺼내면 c부터 b와 a의 순서로 나오게 된다. 스택(Stack)의 연산 S를 스택, x를 데이터 요소(element)라고 하자. 그러면 스택에서는 아래와 같은 중요한 연산이 존재하는 것을 알 수 있다. .. 2022. 5. 23.
[Data Structure] 연결 리스트(Linked List) 연결 리스트(Linked List)란? 연결 리스트(Linked List)는 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조이다. 데이터를 담고 있는 노드들이 연결되어 있는데, 노드의 포인터가 다음이나 이전의 노드와의 연결을 담당하게 된다. 연결 리스트(Linked List)의 종류 단순 연결 리스트(Singly linked list) 단일 연결 리스트(Singly linked list)는 각 노드에 자료 공간과 한 개의 포인터 공간이 있고, 각 노드의 포인터는 다음 노드를 가리킨다. 이중 연결 리스트(Doubly linked list) 단순 연결 리스트(Singly Linked List)는 next로 현재 노드에서 다음 노드로 갈 수 있지만 이전 노드로는.. 2022. 5. 17.