반응형
이번 포스팅에서는 파이썬에서 많이 사용되는 자료구조 중 스택과 큐를 함께 알아보도록 하겠습니다. 스택과 큐는 비슷한 듯 다른 특징을 가지고 있는데요! 아래에서 정리해 보도록 하겠습니다.
스택(Stack)
- LIFO(Last In First Out): 말 그대로 마지막에 들어온 것이 가장 먼저 나간다. 즉, 들어온 순서의 반대로 나간다.
- 스택에 데이터를 저장하는 것을 푸시(push), 데이터를 추출하는 것을 팝(pop)이라고 한다.
- 스택 구현
- 파이썬에서 스택을 구현할 때에는 리스트를 사용합니다.
- 리스트를 만든 다음, append() 함수를 사용에 값을 저장하고 pop() 함수를 사용해 값을 추출합니다.
- 이때, pop() 함수를 사용하면 빠져나온 값이 반환됩니다.
a = [1, 2, 3, 4, 5]
a.append(10)
print(a)
# >>> a = [1, 2, 3, 4, 5, 10]
a.append(20)
print(a)
# >>> a = [1, 2, 3, 4, 5, 10, 20]
a.pop()
# >>> 20
print(a)
# >>> a = [1, 2, 3, 4, 5, 10]
a.pop()
# >>> 10
print(a)
# >>> a = [1, 2, 3, 4, 5]
큐(queue)
- FIFO(First In First Out): 가장 먼저 들어온 것이 가장 먼저 나간다. 즉, 들어온 순서대로 다시 나간다.
- 스택에 데이터를 저장하는 것을 푸시(push), 데이터를 추출하는 것을 팝(pop)이라고 한다.
- 큐 구현
- 파이썬에서 스택을 구현할 때에도 리스트를 사용합니다.
- 리스트를 만든 다음, append() 함수를 사용에 값을 저장하고 pop(0) 함수를 사용해 인덱스 0의 값을 추출합니다.
- 이때, 마찬가지로 pop(0) 함수를 사용하면 빠져나온 값이 반환됩니다.
a = [1, 2, 3, 4, 5]
a.append(10)
print(a)
# >>> a = [1, 2, 3, 4, 5, 10]
a.append(20)
print(a)
# >>> a = [1, 2, 3, 4, 5, 10, 20]
a.pop(0)
# >>> 1
print(a)
# >>> a = [2, 3, 4, 5, 10, 20]
a.pop(0)
# >>> 2
print(a)
# >>> a = [3, 4, 5, 10, 20]
스택과 큐 비교
자료 구조 | 스택(stack) | 큐(queue) |
생성 | 리스트 활용 | |
데이터 입력 | append() | |
데이터 추출 | pop() | pop(0) |
추출된 데이터 반환 | O | O |
입력 순서 | 1, 2, 3, 4, 5 | |
추출 순서 | 5, 4, 3, 2, 1 | 1, 2, 3, 4, 5 |
반응형
'Python' 카테고리의 다른 글
[Python] 자료 구조 - 딕셔너리(dictionary) (0) | 2023.10.31 |
---|---|
[Python] 자료구조 - 튜플(tuple) (0) | 2023.10.30 |
[Python] 파이썬 자료구조 종류 (0) | 2023.10.29 |
[Python] 2차원 리스트 (1) | 2023.10.22 |
[Python] 리스트 함축, 리스트 함축 형식, 리스트 함축 방법 (1) | 2023.10.17 |