Algorithm

[1028알고리즘 12] 큐 구현

  • 노드구현
  • 큐 의 초기화 구현 * head, tail
  • 큐의 enqueue data 마지막에넣음
  • 큐의 dequeue 처음에서뺌
  • 큐의 peek
  • 큐의 isEmpty()
class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

class Queue:
    def __init__(self):
        self.head = None
        self.tail = None

    def isEmpty(self):
        return self.head is None

    def enqueue(self,data):
        new_node = Node(data)
        if self.isEmpty():
            self.head = new_node
            self.tail = new_node
            return

        self.tail.next = new_node
        self.tail = new_node

    def dequeue(self):
        if self.isEmpty():
            print("비었음")
            return
        delete_head = self.head
        self.head = delete_head.next
        return delete_head

    def peek(self):
        if self.isEmpty():
            print("비었음")
            return
        return self.head.data


q = Queue()
q.enqueue(3)
print(q.peek())
q.enqueue(4)
print(q.peek())
print(q.dequeue().data)
print(q.peek())

'Algorithm' 카테고리의 다른 글

[1028알고리즘 13]탑송신  (0) 2021.04.10
[1028알고리즘]Queue - JAVA  (0) 2021.04.10
[1028알고리즘 11] 스택구현  (0) 2021.04.10
[1028알고리즘 10]스택 vs 큐  (0) 2021.04.10
[1028알고리즘 09]링크드리스트 구현  (0) 2021.04.10