쓰고싶은거 써요
스택 큐 본문
2021/10/07
영어 Stack = 쌓다 라는 의미
프로그래밍 목록 혹은 리스트에서 접근이 한 쪽에서만 가능한 구조.
LIFO (Last in First Out)
push peek pop 3가지를 기본으로 잡음.
BOOK 4를 STACK (BOOK3)에 올리는 모습.
이때 가장 마지막 문서는 BOOK4 가된다.
PEEK은 BOOK 리스트의 마지막BOOK을 보는것.
파이썬은 LIST가 스텍으로 사용 가능하게 구현되어있다.
class Stack(list):
pust = list.append
def peek(self):
return self[-1] // (or self[len(self)-1]
push를 append로 대체함. # append 도 가능
list는 s= [1,5,10] 대로 쌓여간다.
만약 여기서 pop() 을 실행하면
[1,5] 의 값을 가지고있고
pop()실행시 10이라는 값을 가져온다.
여기서 peek을 실행시 s [1,5]의 값은 그대로지만 peek에서 5의 값을 가져온다.
큐. Queue
영어로 일이 처리되기를 기다리는 리스트 라는 의미
프로그래밍에서 목록 혹은 리스트에서 접근이 양쪽에서 가능한 구조로 이루어짐.
FIFO(First-in First-Out)가 기본원리.
Put, Peek, Get의 기본원리
class Queue(list):
put = list.append # append와 동일
def peek(self):
return self[0]
def get(self):
return self.pop(0)
굳이 이렇게 할 필요없이 deque()를 사용해서 사용 가능 or [ from queue import Queue ] 를 사용해도 된다.
list에서 queue와 stack 전부 구현가능하다.
스텍에서는 DFS를 활용할 수 있고. 큐에서는 BFS를 활용할 수 있다.
Comments