Computer Science

[자료구조] 큐 구현: 연결리스트 이용 방법

imsunbow 2024. 2. 6. 02:43

연결리스트를 이용하여 큐를 구현하는 예제이다.

 

Node class와 Queue class를 이용하여 queue를 구현하였다. 

class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

class Queue:
    def __init__(self):
        self.front = None
        self.rear = None

    def is_empty(self):
        return self.front is None

    def enqueue(self, data):
        new_node = Node(data)
        if self.is_empty():
            self.front = self.rear = new_node
        else:
            self.rear.next = new_node
            self.rear = new_node

    def dequeue(self):
        if self.is_empty():
            raise ValueError("Queue is empty")
        data = self.front.data
        self.front = self.front.next
        if self.front is None:
            self.rear = None
        return data

    def peek(self):
        if self.is_empty():
            raise ValueError("Queue is empty")
        return self.front.data

    def display(self):
        current = self.front
        while current:
            print(current.data, end=" ")
            current = current.next
        print()

# 예제 사용
queue = Queue()
queue.enqueue(1)
queue.enqueue(2)
queue.enqueue(3)

print("Queue:")
queue.display()  # 출력: 1 2 3

print("Dequeue:", queue.dequeue())  # 출력: Dequeue: 1
print("Queue:")
queue.display()  # 출력: 2 3

print("Peek:", queue.peek())  # 출력: Peek: 2

 

반응형