14.3. 프로그램언어 파이썬(Python)에서의 스택과 큐

프로그램언어 파이썬의 스택의 정의와 특성

파이썬의 스택(Stack)에 대한 설명

스택(Stack)은 후입선출(Last In, First Out) 구조를 가지는 자료구조로, 데이터를 저장하고 접근하는 방식을 제공합니다. 파이썬에서 스택은 리스트(List)를 활용하여 구현할 수 있습니다.

스택의 특성

  • 가장 최근에 추가된 항목이 가장 먼저 제거됩니다.
  • 삽입과 삭제가 스택의 맨 위(top)에서 이루어집니다.
  • 스택은 한 쪽 끝에서만 데이터를 접근할 수 있습니다.

파이썬에서의 스택 예제 코드


# 빈 스택 생성
stack = []

# 스택에 데이터 추가 (push)
stack.append(1)
stack.append(2)
stack.append(3)

# 스택에서 데이터 삭제 (pop)
top_item = stack.pop()
print("Pop item:", top_item)

# 스택의 맨 위 데이터 확인 (peek)
top_item = stack[-1]
print("Top item:", top_item)
    

프로그램언어 파이썬의 큐의 정의와 특성

큐(Queue)는 프로그래밍에서 데이터를 일시적으로 저장하는 자료구조로, 선입선출(FIFO, First-In-First-Out)의 원칙을 따릅니다. 큐는 데이터를 넣는 작업을 인큐(enqueue)라고 하고, 데이터를 꺼내는 작업을 디큐(dequeue)라고 합니다. 파이썬에서는 큐를 구현하기 위해 내장 모듈인 ‘queue’를 사용할 수 있습니다.

큐의 특성은 다음과 같습니다:

  • 선입선출(FIFO) 구조를 가짐
  • 인큐와 디큐 연산을 지원
  • 데이터의 삽입과 삭제가 효율적
  • 멀티스레딩 환경에서 안전하게 사용 가능

아래는 파이썬의 큐를 사용하는 예제 코드입니다:


from queue import Queue

# 큐 생성
q = Queue()

# 데이터 인큐
q.put(1)
q.put(2)
q.put(3)

# 데이터 디큐
print(q.get())  # 1
print(q.get())  # 2

프로그램언어 파이썬에서의 스택과 큐의 활용 방법

파이썬에서의 스택과 큐 활용 방법

스택(Stack)

스택은 후입선출(LIFO, Last In First Out) 구조로 데이터를 저장하는 자료구조입니다. 파이썬에서는 리스트를 사용하여 스택을 구현할 수 있습니다.


stack = []

# 스택에 데이터 추가
stack.append(1)
stack.append(2)
stack.append(3)

# 스택에서 데이터 추출
top_element = stack.pop()
print(top_element)  # 출력: 3
        

큐(Queue)

큐는 선입선출(FIFO, First In First Out) 구조로 데이터를 저장하는 자료구조입니다. 파이썬에서는 collections 모듈의 deque를 사용하여 큐를 구현할 수 있습니다.


from collections import deque

queue = deque()

# 큐에 데이터 추가
queue.append(1)
queue.append(2)
queue.append(3)

# 큐에서 데이터 추출
first_element = queue.popleft()
print(first_element)  # 출력: 1
        

프로그램언어 파이썬에서의 스택과 큐의 차이점

스택(Stack)과 큐(Queue)는 프로그램에서 데이터를 저장하고 관리하는 데 사용되는 자료구조입니다.

스택(Stack)은 후입선출(LIFO, Last In First Out)의 원리를 따르는 자료구조로, 데이터를 넣고 빼는 동작이 한쪽 끝에서만 이루어집니다. 가장 최근에 추가된 데이터가 가장 먼저 제거됩니다.

큐(Queue)는 선입선출(FIFO, First In First Out)의 원리를 따르는 자료구조로, 데이터를 넣는 동작은 한쪽 끝에서, 빼는 동작은 반대쪽 끝에서 이루어집니다. 가장 먼저 추가된 데이터가 가장 먼저 제거됩니다.

스택과 큐의 주요 차이점은 데이터의 추가와 제거가 일어나는 위치와 순서에 있습니다. 스택은 한쪽 끝에서만 데이터를 추가하고 제거하며, 큐는 양쪽 끝에서 데이터를 추가하고 제거합니다.

아래는 파이썬에서 스택과 큐를 간단히 구현한 예제 코드입니다.


# 스택(Stack) 구현 예제
class Stack:
    def __init__(self):
        self.items = []

    def push(self, item):
        self.items.append(item)

    def pop(self):
        if not self.is_empty():
            return self.items.pop()

    def is_empty(self):
        return len(self.items) == 0

# 큐(Queue) 구현 예제
class Queue:
    def __init__(self):
        self.items = []

    def enqueue(self, item):
        self.items.append(item)

    def dequeue(self):
        if not self.is_empty():
            return self.items.pop(0)

    def is_empty(self):
        return len(self.items) == 0
    

프로그램언어 파이썬에서의 스택과 큐 활용 예제

파이썬에서의 스택(Stack)과 큐(Queue)는 데이터를 저장하고 처리하는 데 유용한 자료구조입니다. 스택은 후입선출(Last In First Out, LIFO)의 구조를 가지고 있어, 가장 최근에 추가된 항목이 가장 먼저 제거됩니다. 반면 큐는 선입선출(First In First Out, FIFO)의 구조를 가지고 있어, 가장 먼저 추가된 항목이 가장 먼저 제거됩니다.

스택과 큐는 파이썬의 리스트(list)를 활용하여 구현할 수 있습니다. 아래는 간단한 스택과 큐의 활용 예제 코드입니다.

스택(Stack) 예제 코드:


stack = []

# 스택에 데이터 추가
stack.append(1)
stack.append(2)
stack.append(3)

# 스택에서 데이터 제거
top_item = stack.pop()
print("Top item:", top_item)

위의 코드는 스택을 리스트를 활용하여 구현한 예제입니다. 스택에 데이터를 추가할 때는 append() 메서드를 사용하고, 데이터를 제거할 때는 pop() 메서드를 사용합니다.

큐(Queue) 예제 코드:


from collections import deque

queue = deque()

# 큐에 데이터 추가
queue.append(1)
queue.append(2)
queue.append(3)

# 큐에서 데이터 제거
first_item = queue.popleft()
print("First item:", first_item)

위의 코드는 큐를 파이썬의 deque 모듈을 활용하여 구현한 예제입니다. 큐에 데이터를 추가할 때는 append() 메서드를 사용하고, 데이터를 제거할 때는 popleft() 메서드를 사용합니다.

Leave a Comment