본문 바로가기
자료구조

Stack / Queue 설명

by ris 2024. 11. 8.

스택이란?


 

스택(Stack)은 번역하자면 

 

즉, '무언가를 쌓다'가 됩니다.

예시를 들자면 아래 사진과 같습니다.

아래서부터 차곡차곡 쌓아올리는 것. 그것이 바로 스택입니다.

그래서 만일 맨 아래 책을 꺼내고 싶다면 위에 책들을 하나하나 들어서 치워야겠지요.

고로 스택을 다른 말로 LIFO(Last In, First Out) 자료구조하고 부릅니다.

 

비슷한 예제들

  • 문이 한 방향에 있는 엘리베이터
  • 웹사이트에서 전 페이지로 되돌리기
class Stack:
    def __init__(self):
        self.data = []
    
    def size(self):
        return len(self.data)

    def push(self, item):
        self.data.append(item)
    
    def pop(self):
        return self.data.pop(0)
    
    def peek(self):
        return self.data[len(self.data)-1]

큐란?


 

큐(Queue)는 번역하면 대기열이란 의미로 처음 들어온 사람이 가장 빨리 나간다는 뜻입니다.

아래는 예시 사진입니다.

사진 속 사람들은 차례차례로 순서를 기다립니다. 이것이 바로 입니다.

이 때문에 큐를 다른 말로 FIFO(First In, First Out)이라고 부릅니다. 

*삐뽀라고 부르기도 ㅋㅋ

 

class Queue:
    def __init__(self):
        self.data = []
    
    def size(self):
        return len(self.data)

    def enqueue(self, item):
        self.data.append(item)
    
    def dequeue(self):
        return self.data.pop(0)
    
    def peek(self):
        return self.data[0]

size : 배열 길이

enqueue : 값 집어넣기

dequeue : 첫 값 빼기 & 보기

peek : 첫 값 보기