[DAY 3] Stack & Queue
Python Data Structure
- 특징이 있는 정보를 저장하는 방법
- 파이썬 기본 데이터 구조
- 스택과 큐(stack & queue with list)
- 튜플과 집합(tuple & set)
- 사전(dictionary)
- Collection 모듈
스택 (Stack)
- 나중에 넣은 데이터를 먼저 반환하도록 설계된 메모리 구조
- Last In First Out (LIFO)
- Data의 입력을 push, 출력을 pop이라고 함
- 리스트를 사용하여 스택 구조를 구현 가능
- push를
append()
, pop을pop()
를 사용 - 특이하게도, pop은 값을 변화하면서, 반환값이 존재
sort()
: 반환값X, 값변경Osorted()
: 반환값O, 값변경X
1
2
3
4
5
6
# 스택 구조를 활용, 입력된 글자를 역순으로 출력
word = input("Input a word : ") # Input Word
word_list = list(word) # String to List
for i in range(len(word_list)):
print(word_list.pop()) # 하나씩 빼면서 출력
큐 (Queue)
- 먼저 넣은 데이터를 먼저 반환하도록 설계된 메모리 구조
- First In First Out (FIFO)
- Stack과 반대되는 개념
- 파이썬은 리스트를 사용하여 큐 구조를 활용
- put를 append(), get을 pop(0)를 사용
1
2
3
4
5
6
7
>>> a = [1,2,3,4,5]
>>> a.append(10)
>>> a.append(20)
>>> a.pop(0) # 1 출력
# 1
>>> a.pop(0) # 2 출력
# 2