global SIZE class Q: def __init__(self, front, rear): self.queue = [None] * SIZE self.front = front self.rear = rear def isQueueFull(self): if self.queue[self.circulate(self.rear)] != None: return True else: return False def enQueue(self, data): if self.isQueueFull(): print("Queue is Full ...") else: self.rear = self.circulate(self.rear) self.queue[self.rear] = data def isQueueEmpty(self): if self.queue[self.circulate(self.front)] == None: return True else: return False def deQueue(self): if self.isQueueEmpty(): print("Queue is Empty ...") else: self.front = self.circulate(self.front) data = self.queue[self.front] self.queue[self.front] = None print("dequeued " + str(data)) def circulate(self, point): if point == SIZE - 1: return 0 else: point += 1 return point print("=================================================") SIZE = int(input("큐의 크기를 입력하세요: ")) q = Q(0, 0) print("명령어를 입력하세요. (en, de, full, empty, quit)") print("=================================================") while 1: print("* 현재 배열: " + str(list(q.queue))) order = input("> ") if order == 'en': q.enQueue(input("넣을 숫자를 입력하세요: ")) continue elif order == 'de': q.deQueue() continue elif order == 'full': if q.isQueueFull(): print(True) else: print(False) elif order == 'empty': if q.isQueueEmpty(): print(True) else: print(False) elif order == 'quit': break else: print("명령어를 바르게 입력하세요.")
'프로그래밍 > CS 이론' 카테고리의 다른 글
메서드 vs 클래스 (1) | 2024.07.24 |
---|---|
Example using Stack in Python (0) | 2022.03.19 |