ETC/자료구조

스택 & 큐

2022. 8. 31. 02:02
목차
  1. 1. 스택(Stack)
  2. 2. 큐(Queue)

1. 스택(Stack)

스택은 컴퓨터의 자료구조의 한 가지로 한쪽 끝에서만 자료를 넣거나 뺄 수 있는

후입선출(LIFO – Last In First Out)로 되어있다.

PUSH는 자료를 밀어 넣는 것을 의미하고 자료를 꺼내는 것을 POP이라고 한다.

스택은 PUSH할 때 과거 데이터 위에 최신 데이터가 쌓이고, POP할때는 최신 데이터부터 나오게 된다. 이런 구조를 LIFO 구조라고 한다.


컴퓨터의 ctrl + z (이전상태 되돌리기)가 대표적인 예이다.

<스택의구조>

2. 큐(Queue)

1. 선형큐

큐도 컴퓨터에서 사용하는 자료구조이다.  스택과 다른 점은 먼저 넣은 자료가 먼저 나오는
선입선출(FIFO -First In First Out) 구조로구조로 저장하는 형식을 말한다.


큐는 put(enqueue)와 get(dequeue)을 이용해 구현된다.
Put
은 큐에 자료를 넣는 것을, get은 큐에 자료를 꺼내는 것을 의미한다.
front(head)
는 데이터를 get 할 수 있는 위치를 가리키고 rear(tali)은 데이터를 put 할 수 있는 위치를 가리킨다.
큐가 가득 차서 더 이상 put 할 수 없는 상태를 오버플로우(OverFlow)라고 하고,
큐가 비어있어 더 이상 get 할 수 없는 상태를 언더플로우(UnderFlow)라고 한다.

<선형큐의구조>

2. 원형큐

선형 큐의 오버플로우 문제를 해결하기 위해 나온 자료구조로서
front == rear
이면 front를 get 하고 해당 자리를 비운 뒤 해당 자리에 get 한다.

 

즉. Front = 0이고 rear = 7 일때 rear + 1 하면 front == rear 가된다. 오버플로우 방지를 위해
0
번 자리에 있는 front를 get 하고 front = front + 1 한다. (0번 자리 비우고)

이후 rear = rear + 1 한 뒤  비어있는 0번 자리에 put 한다.(0번 자리 채운다)

<원형큐구조>

 

  1. 1. 스택(Stack)
  2. 2. 큐(Queue)
Interrrupt
Interrrupt
프로그래밍, 개발, IT, 일상
Interrrupt
일상의 인터럽트
Interrrupt
전체
오늘
어제
반응형
  • 분류 전체보기 (78)
    • Programing (26)
      • C# (12)
      • WPF-FrameWork (5)
      • JavaScript (7)
      • React-FrameWork (2)
    • DB (14)
      • 오라클 (14)
    • ETC (5)
      • 기타 (4)
      • 자료구조 (1)
      • 마크업 (1)
    • Tools (4)
    • 토이프로젝트 (4)
      • C# WPF로 자동매매프로그램 만들기 (4)
    • OS (2)
      • 리눅스 (1)
      • Window11 (1)
    • CS지식 (8)
      • 프론트엔드 (4)
      • 백엔드 (4)
    • 일상 (12)
      • 취미 (3)
      • 맛집 (9)
hELLO · Designed By 정상우.
Interrrupt
스택 & 큐
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.