본문 바로가기

분류 전체보기414

다중 스택 최종 수정 : 12.24.29다중 스택1. 다중 스택의 정의다중 스택이란 2개의 스택을 이요한 구조를 의미하며, 하나의 기억 장소에 2개의 스택을 표현한다. 양쪽 끝은 각 스택의 bottom을 의미하고, 사용 가능 공간을 스택 2개의 top pointer가 1씩 증가하면서 각 스택이 할당받아 사용하게 된다.2. 다중 스택의 삽입다중 스택에서의 삽입은 몇 번째 스택에 원소를 삽입할지 하는 스택의 번호와 삽입할 원소가 필요하다.참고독학사 교재 2024. 12. 29.
동적연결 스택과 큐 최종 수정 : 24.12.29동적연결 스택과 큐순차 표현방법은 스택이나 큐가 하나만 있을 때는 효율적이나 여러 개의 스택이나 큐가 동시에 있을 때, 이들을 순차 리스트로 표현하면 비효율적이다. 이것을 연결 리스트로 표현해야 효율적이다. 스택은 tp pointer로 첫 노드를 가리키게 하고, 큐의 경우에는 첫째와 마지막 노드를 각각 front와 rear pointer로 가리킴으로써 삽입&삭제가 가능하도록 할 수 있다. 스택과 큐를 연결 리스트로 만들면 메모리르 좀 더 효율적으로 쓸 수 있고, 1차원 배열로 표현했을 때 발생하는 메모리 한계를 극복할 수 있다.1. 연결 리스트로 구현된 스택의 노드 추가스택에서의 노드 추가는 가용 공간이 가득 찼는지 확인 후에 노드를 삽입한다. 순차 표현으로 표현된 스택에서의.. 2024. 12. 29.
덱(Deque) 최종 수정 : 24.12.29덱(Deque)덱(Deque : double-ended queue의 약어)은 큐의 특수한 형태로, 디큐, 데크, 덱이라는 이름으로 불린다. 덱은 리스트의 양쪽 끝에서 삽입과 삭제가 모두 이루어지는 자료구조 형태이다. 덱은 스택과 큐를 혼합한 구조로 하나의 배열을 선언한 후 2개의 포인터로 양쪽 끝을 가리킴으로써 양쪽에서 삽입 및 삭제 연산이 이루어지는 구조이다. 덱을 표현하는 방법에는 1차원 배열 형태인 스택을 이용하는 방법과 단순 연결 리스트나 이중 연결 리스트를 사용하여 표현하는 방법이 있다. 연결 구조를 위한 포인터 기억공간을 더 요구하게 되는 문제점을 갖는다. 덱은 리스트의 양쪽 끝에서 삽입과 삭제가 발생하여 항상 2개의 포인터가 필요하다. 덱은 양쪽 끝에서 원소들의 .. 2024. 12. 29.
큐(Queue) 최종 수정 : 24.12.28큐(Queue)1. 큐의 정의큐는 리스트의 한쪽 끝에서 원소를 삽입하고 다른 한쪽 끝에서는 원소의 삭제가 일어나는 구조이다. 이를 선입선출(FIFO : First In First Out)이라고도 한다. 프로세서 스케줄링에서 FCFS(Fist Come Fist Service) 알고리즘과 같이 먼저 작업대기 큐에 들어오면 먼저 서비스를 받는 형식이다. 큐는 near와 front라고 하는 2개의 포인터를 사용한다.rear(또는 tail)☞ rear에서 원소의 삽입 연산이 실행되며, 큐에서 원소를 삽입하기 위해서 rear 포인터를 1 증가시키고 원소를 삽입하게 된다.front(또는 head)☞ front에서 원소의 삭제 연산이 일어난다. front 포인터 위치에 있는 원소를 삭제하고.. 2024. 12. 29.
스택(Stack) 최종 수정 : 24.12.28스택(Stack)1. 스택의 정의스택은 "쌓아 올린다"는 뜻을 갖고 있다. 선형의 구조를 가지며, 한쪽 끝이 막혀 있고, 다른 한쪽으로만 삽입(입력)과 삭제(출력)가 가능한 구조이다. 후입선출구조(Last-In First-Out[LIFO])라 한다. 스택에서 사용하는 연산은 삽입(PUSH), 삭제(POP)이 있다. 현재 원소(스택의 최상위 원소)가 들어있는 위치를 지시하는 top이라는 포인터가 있고, 스택의 바닥을 지시하는 포인터로 bottom이 있으며, top을 통해서 데이터를 삽입/삭제할 수 있다.PUSH 연산 : 스택에 원소를 입력하는 연산, top이 증가한다.POP 연산 : 스택의 top에 있는 원소를 출력하는 연산, top이 감소한다. 스택은 입력의 순서와 출력의 순.. 2024. 12. 28.