-
[Python Algorithms] 큐(Queue)Computer Science/Algorithms 2020. 11. 19. 16:58SMALL
큐(Queue)는 스택과 함께 많이 사용되는 기본 자료구조이다.
스택이 LIFO(Last In First Out) 방식이라면 큐는 FIFO(First In First Out) 선입선출 방식이다.
큐라는 이름에서 알 수 있듯이 줄을 선 사람들의 모습을 생각하면 이해하기 편하다.
줄을 선 사람들은 줄을 선 순서대로 입장하거나 물건을 살 수 있기 때문에 선입선출의 구조라고 볼 수 있다.
큐에서 줄을 서는 것과 같은 역할을 풋(put)이라 하고
앞에서부터 입장하는 것과 같은 역학을 겟(get)이라 한다.
큐는 스택과 달리 배열을 사용하는 것이 더 유용하다.
def put(item): queue.append(item) def get(): return queue.pop(0) if __name__ == '__main__': queue = [] put(1) put(2) put(3) put(4) print("Queue: ") print(queue) print("\n") print("Pop: ") while queue: print("Pop > {}".format(get()))
put 함수를 이용해 queue이라는 리스트에 1, 2, 3, 4을 넣어주었고(put)
이 후, pop(0)함수(첫 값을 뽑아줌)를 이용해 while문을 돌며 리스트의 끝에서부터 하나씩 빼주었다(get).
3 번의 push와 3 번의 pop을 이용해 마지막 stack 리스트에는 아무것도 남지 않은 것을 알 수 있다.
[참고 문헌]
1. 위키백과, "스택", ko.wikipedia.org/wiki/%EC%8A%A4%ED%83%9D
2. 박선주, 영진닷컴, "필수 알고리즘 with 파이썬"
LIST'Computer Science > Algorithms' 카테고리의 다른 글
[Python Algorithms] 트리(Tree) 2 : 순회 알고리즘 (0) 2020.11.26 [Python Algorithms] 트리(Tree) 1 (0) 2020.11.25 [Python Algorithms] 스택(Stack) (0) 2020.11.18 [Python Algorithms] 이중 연결 리스트 (0) 2020.11.16 [Python Algorithms] 연결 리스트 (Linked List) (0) 2020.11.14 댓글