Data structure & Algorithms study (32) 썸네일형 리스트형 연결 리스트 기반 스택 (Linked List-based Stack) 스택(Stack)은 LIFO(Last In, First Out) 구조를 가지는 자료 구조로, 마지막에 삽입된 요소가 가장 먼저 제거된다. 스택은 배열(Array) 또는 연결 리스트(Linked List)로 구현할 수 있다. 연결 리스트 기반 스택은 스택의 요소를 노드(Node)로 관리하여 동적으로 메모리를 할당한다. 이 방법은 스택의 크기가 가변적이어서 메모리 사용이 효율적이다.연결 리스트 기반 스택의 구조노드 (Node): 스택의 각 요소를 나타내는 기본 단위로, 데이터와 다음 노드를 가리키는 포인터를 포함한다.데이터 (Data): 노드가 저장하는 값.다음 (Next): 다음 노드를 가리키는 포인터.스택 (Stack): 연결 리스트의 헤드(Top) 노드를 가리키는 포인터를 포함한다.탑 (Top): 스택.. 원형 연결 리스트 (Circular Linked List) 원형 연결 리스트(Circular Linked List)는 연결 리스트의 한 종류로, 마지막 노드가 첫 번째 노드를 가리켜 리스트의 끝과 처음이 연결된 형태를 가지는 자료 구조이다. 원형 연결 리스트는 단일 연결 리스트(Singly Linked List)와 이중 연결 리스트(Doubly Linked List)로 나눌 수 있다. 원형 연결 리스트는 리스트의 처음과 끝이 연결되어 있어 순환 구조를 이루며, 특정 상황에서 메모리 사용과 알고리즘 구현에 유용하다.구조노드 (Node): 원형 연결 리스트의 기본 구성 요소로, 데이터와 포인터를 포함한다.데이터 (Data): 노드가 저장하는 값.다음 (Next): 다음 노드를 가리키는 포인터. 마지막 노드의 경우, 첫 번째 노드를 가리킨다.헤드 (Head): 리스트.. 이중 연결 리스트 (Doubly Linked List) 이중 연결 리스트(Doubly Linked List)는 각 노드가 두 개의 포인터를 가지고 있는 선형 자료 구조이다. 한 포인터는 다음 노드를 가리키고, 다른 포인터는 이전 노드를 가리킨다. 이를 통해 리스트를 양방향으로 순회할 수 있다. 이중 연결 리스트는 단일 연결 리스트(Singly Linked List)에 비해 더 많은 메모리를 사용하지만, 삽입 및 삭제 연산이 더 유연하고 효율적이다.구조노드 (Node): 이중 연결 리스트의 기본 구성 요소로, 데이터와 두 개의 포인터(이전 노드와 다음 노드를 가리키는 포인터)를 포함한다.데이터 (Data): 노드가 저장하는 값.이전 (Prev): 이전 노드를 가리키는 포인터.다음 (Next): 다음 노드를 가리키는 포인터.헤드 (Head): 리스트의 첫 번째 .. 단일 연결 리스트 (Singly Linked List) 단일 연결 리스트 (Singly Linked List)단일 연결 리스트(Singly Linked List)는 선형 자료 구조 중 하나로, 각 노드가 하나의 데이터 요소와 다음 노드를 가리키는 포인터를 포함하는 형태로 구성된다. 연결 리스트는 배열과 달리 요소들이 메모리상에 연속적으로 배치되지 않으며, 각 노드가 다음 노드를 가리키고 있어 동적 메모리 할당이 가능하다.구조노드 (Node): 연결 리스트의 기본 구성 요소로, 데이터와 다음 노드를 가리키는 포인터를 포함한다.데이터 (Data): 노드가 저장하는 값.다음 (Next): 다음 노드를 가리키는 포인터.헤드 (Head): 리스트의 첫 번째 노드를 가리키는 포인터. 리스트의 시작점이다.꼬리 (Tail): 리스트의 마지막 노드를 가리키는 포인터 (단일 .. 덱 (Deque) 덱 (Deque) 자료 구조덱(Deque, Double-Ended Queue)은 큐와 스택의 특성을 모두 가지고 있으며, 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료 구조이다. 덱은 다음과 같은 두 가지 유형이 있다.입력 제한 덱 (Input-Restricted Deque): 한쪽 끝에서만 삽입이 가능하고, 양쪽 끝에서 삭제가 가능하다.출력 제한 덱 (Output-Restricted Deque): 양쪽 끝에서 삽입이 가능하고, 한쪽 끝에서만 삭제가 가능하다.덱의 주요 연산덱은 다음과 같은 주요 연산을 지원한다.Add to Front (addFront): 덱의 앞쪽 끝에 요소를 추가한다.Add to Rear (addRear): 덱의 뒤쪽 끝에 요소를 추가한다.Remove from Front (removeF.. 원형 큐(Circular Queue) 원형 큐(Circular Queue)는 일반적인 큐의 한계를 극복하기 위해 설계된 자료 구조이다. 일반적인 큐는 배열을 사용하여 구현할 때, 요소를 추가하거나 제거할 때마다 배열의 앞쪽 요소들을 이동시켜야 하는 문제가 발생할 수 있다. 이러한 문제를 해결하기 위해 원형 큐는 배열의 처음과 끝이 연결된 형태를 사용하여, 공간을 효율적으로 사용할 수 있다.원형 큐의 특성고정된 크기: 원형 큐는 고정된 크기의 배열을 사용하여 구현된다.Front와 Rear 포인터: 큐의 앞과 뒤를 가리키는 두 개의 포인터가 있다. front는 큐의 앞쪽 요소를 가리키고, rear는 큐의 마지막 요소를 가리킨다.원형 배열: 배열의 마지막 인덱스 다음에는 배열의 첫 번째 인덱스가 온다. 즉, 배열이 끝나면 다시 처음으로 돌아간다... 큐 (Queue) 큐 자료 구조 (Queue Data Structure)큐는 FIFO(First In, First Out) 구조를 따르는 자료 구조이다. 즉, 먼저 삽입된 데이터가 먼저 제거된다. 큐는 일상 생활에서 쉽게 찾을 수 있다. 예를 들어, 은행의 대기 줄이나 프린터 작업 대기열이 큐의 예이다. 큐는 한쪽 끝에서 삽입 연산이 이루어지고 반대쪽 끝에서 제거 연산이 이루어지는 특성을 갖는다.큐의 주요 연산Enqueue: 큐의 끝(뒤쪽)에 새로운 요소를 추가한다.Dequeue: 큐의 앞(앞쪽)에 있는 요소를 제거하고 반환한다.Peek/Front: 큐의 앞에 있는 요소를 제거하지 않고 반환한다.isEmpty: 큐가 비어 있는지 확인한다.Size: 큐의 크기를 반환한다.큐의 동작Enqueue 연산: 큐의 끝에 새로운 요소.. 스택(Stack) 스택 자료 구조 (Stack Data Structure)스택은 컴퓨터 과학에서 가장 기본적이고 중요한 자료 구조 중 하나이다. 스택은 데이터를 LIFO(Last In, First Out) 방식으로 저장하고 관리한다. 이는 마지막에 삽입된 데이터가 가장 먼저 제거된다는 것을 의미한다. 스택은 일상 생활에서도 쉽게 찾을 수 있다. 예를 들어, 접시를 쌓을 때 가장 위에 있는 접시가 가장 먼저 사용되는 방식이 스택과 동일하다.스택의 주요 연산Push: 스택의 맨 위에 새로운 요소를 추가한다.Pop: 스택의 맨 위에 있는 요소를 제거하고 반환한다.Peek/Top: 스택의 맨 위에 있는 요소를 제거하지 않고 반환한다.isEmpty: 스택이 비어 있는지 확인한다.Size: 스택의 크기를 반환한다.스택의 동작Push.. 이전 1 2 3 4 다음