본문 바로가기

프로그래밍/CS 이론

Circular Queue in Python

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