고양이 여름이의 지식채널
[Python] 파이썬 자료구조 구현 (스택(stack), 큐(queue), 트리(tree)) 본문
파이썬에서 스택(Stack), 큐(Queue), 트리(Tree) 자료구조를 구현하는 방법에 대해 알아보겠습니다.
스택(Stack)
스택은 후입선출(LIFO: Last-In, First-Out) 방식으로 데이터를 저장하는 자료구조입니다. 파이썬에서 스택을 구현할 때는 리스트(List)를 사용할 수 있습니다.
# 스택 구현 예제
stack = []
# push: 스택에 데이터 추가
stack.append(1)
stack.append(2)
stack.append(3)
# pop: 스택에서 데이터 추출
print(stack.pop()) # 3
print(stack.pop()) # 2
print(stack.pop()) # 1
리스트의 append() 메소드를 사용하여 데이터를 스택에 추가하고, pop() 메소드를 사용하여 스택에서 데이터를 추출합니다. 리스트의 맨 뒤에 데이터를 추가하고, 맨 뒤에서부터 데이터를 추출하기 때문에 후입선출 방식으로 동작합니다.
큐(Queue)
큐는 선입선출(FIFO: First-In, First-Out) 방식으로 데이터를 저장하는 자료구조입니다. 파이썬에서 큐를 구현할 때는 collections 모듈의 deque 클래스를 사용할 수 있습니다.
from collections import deque
# 큐 구현 예제
queue = deque()
# enqueue: 큐에 데이터 추가
queue.append(1)
queue.append(2)
queue.append(3)
# dequeue: 큐에서 데이터 추출
print(queue.popleft()) # 1
print(queue.popleft()) # 2
print(queue.popleft()) # 3
deque 클래스를 사용하여 큐를 구현하고, append() 메소드로 데이터를 추가하고, popleft() 메소드로 데이터를 추출합니다. popleft() 메소드는 큐에서 가장 왼쪽에 있는 데이터를 추출합니다.
트리(Tree)
트리는 계층적인 데이터를 저장하기 위한 자료구조입니다. 파이썬에서 트리를 구현하기 위해서는 일반적으로 클래스를 사용합니다.
# 트리 구현 예제
class Node:
def __init__(self, value):
self.value = value
self.left = None
self.right = None
# 이진 트리 생성 예제
root = Node(1)
root.left = Node(2)
root.right = Node(3)
root.left.left = Node(4)
root.left.right = Node(5)
루트 노드를 생성하고, left와 right 속성을 사용하여 노드를 연결합니다. left 속성은 왼쪽 자식 노드를 나타내고, right 속성은 오른쪽 자식 노드를 나타냅니다.
파이썬에서는 다양한 자료구조를 구현할 수 있는 내장 모듈과 라이브러리를 제공하므로, 이를 잘 활용하여 효율적인 코드를 작성할 수 있습니다.
[Python] 파이썬 파일 다루기 (open(), read(), write(), csv, 압축, 암호화)