728x90
반응형
참고자료
https://dsaint31.tistory.com/853
[CE] Queue
QueueQueue는 자료구조 중 하나로 선입선출(FIFO, First-In-First-Out) 방식으로 동작함.즉, 먼저 들어온 데이터가 먼저 나가는 구조를 가짐.일상적인 예로 줄서기를 생각하면 이해하기 쉬운데, 줄의 맨 앞
dsaint31.tistory.com
https://dsaint31.tistory.com/490
[CE] Stack
StackStack은 자료구조의 하나로서 FILO (First-In-Last-Out, LIFO 와 같은 의미.)로 동작함.많은 경우 접시 쌓기를 예로 사용하여 First-In-Last-Out (FILO), Last-In-First-Out (LIFO)를 설명한다.Stack에 저장되는 데이터
dsaint31.tistory.com
https://dsaint31.me/mkdocs_site/python/oop/oop_1_04_relationship
BME
OOP : Is-a and Has-a Relationship OOP에서 설계 단계 중 가장 중요한 부분 중 하나가 object간의 관계를 정하는 것이다. 사용할 수 있는 관계들 중 가장 유명한 것은 다음과 같은 2가지 이다. is-a relationship ha
dsaint31.me
main script
from ds_stack import Stack
from ds_queue import Queue
def test_stack():
print("Testing Stack...")
stack = Stack(10)
# 숫자 1부터 10까지 push + 11도 push
for i in range(1, 12):
stack.push(i)
print(f"Pushed {i}, Stack size: {stack.size()}")
# 모든 요소를 pop
while not stack.is_empty():
print(f"Popped {stack.pop()}, Stack size: {stack.size()}")
# 빈 상태에서 pop 시도
print(f"Popped from empty stack: {stack.pop()}")
def test_queue():
print("\nTesting Queue...")
queue = Queue(10)
# 숫자 1부터 10까지 push + 11도 push
for i in range(1, 12):
queue.push(i)
print(f"Pushed {i}, Queue size: {queue.size()}")
# 모든 요소를 pop.
while not queue.is_empty():
print(f"Popped {queue.pop()}, Queue size: {queue.size()}")
# 빈 상태에서 pop 시도
print(f"Popped from empty queue: {queue.pop()}")
if __name__ == "__main__":
test_stack()
test_queue()
queue
# ds_queue.py
class Queue(list):
def __init__(self, max_size=10):
self.max_size = max_size
super().__init__()
def push(self, item):
if len(self) < self.max_size:
self.append(item)
else:
print(f"Queue is full. Cannot push {item}.")
def pop(self):
if self.is_empty():
return None
return super().pop(0) # FIFO 방식으로 pop
def size(self):
return len(self)
def is_empty(self):
"""리스트가 비어있는지 확인하는 메서드"""
return len(self) == 0
stack
# ds_queue.py
class Stack(list):
def __init__(self, max_size=10):
self.max_size = max_size
super().__init__()
def push(self, item):
if len(self) < self.max_size:
self.append(item)
else:
print(f"Stack is full. Cannot push {item}.")
def pop(self):
if self.is_empty():
return None
return super().pop()
def size(self):
return len(self)
def is_empty(self):
"""리스트가 비어있는지 확인하는 메서드"""
return len(self) == 0728x90
'Python' 카테고리의 다른 글
| [Py] 숫자 야구 게임: structured programming, type annotation, and OOP (0) | 2024.11.20 |
|---|---|
| [DIP] Block Truncation Coding (BTC) (0) | 2024.11.18 |
| [Py] 사칙연산 구현 예제 (0) | 2024.11.13 |
| [ML] Classic Regressor (Summary) - regression (0) | 2024.10.02 |
| [Py] Debug: Error and Exception. (1) | 2024.09.25 |