[알고리즘] 연결된 원형큐
문제
사용자로부터 양의 정수들을 입력받아서 연결된 큐에 저장하고, 결과를 다음과 같이 출력하는 프로그램을 작성하라. (python)
소스코드
class Node:
def __init__(self, elem, link=None):
self.data = elem # 데이터 필드 생성 및 초기화
self.link = link # 링크 필드 생성 및 초기화
class CircularLinkedQueue:
def __init__(self):
self.tail = None
def isEmpty(self):
return self.tail == None
def enqueue(self, item):
node = Node(item, None)
if self.isEmpty():
node.link = node # n의 링크가 자신을 가리키도록 함
self.tail = node # tail이 n을 가리키도록 함
else:
node.link = self.tail.link # n의 링크가 front을 가리키도록 함
self.tail.link = node # tail의 링크가 n을 가리키도록 함
self.tail = node
def display(self):
if not self.isEmpty():
node = self.tail.link # front부터 출발
while not node == self.tail or node.data == -1: # rear가 아닌 동안
print(node.data, end='->') # node 출력
node = node.link # 이동
print("None", end=' ') # 마지막으로 rear 출력
q = CircularLinkedQueue()
q.enqueue(input("양의 정수를 입력하세요(종료: -1) : "))
q.enqueue(input("양의 정수를 입력하세요(종료: -1) : "))
q.enqueue(input("양의 정수를 입력하세요(종료: -1) : "))
q.enqueue(input("양의 정수를 입력하세요(종료: -1) : "))
q.display()