포도가게의 개발일지

Python Linkedlist로 구현한 Queue 본문

자료구조

Python Linkedlist로 구현한 Queue

grape.store 2022. 1. 11. 22:02
반응형

Queue 자료구조?

- (queue)는 컴퓨터의 기본적인 자료 구조의 한가지로, 먼저 집어 넣은 데이터가 먼저 나오는 FIFO(First In First Out)구조로 저장하는 형식을 말한다. 

 

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

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

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

  def dequeue(self):
    data = None
    if self.isEmpty():
      print("queue is empty")
    else:
      data = self.head.data
      self.head = self.head.next
    return data
    
  def isEmpty(self):
    is_empty = False
    if self.head == None:
      is_empty = True
    return is_empty

  def top(self):
    data = None
    if self.isEmpty():
      print("stack is empty")
    else:
      data = self.tail.data
    return data

  def search(self):
    cur = self.head
    temp = '['
    while cur != None:
      temp += str(cur.data) + ','
      cur = cur.next
    return temp[:-1]+']'

if __name__ == "__main__":
  a = Queue()
  print(a.top())
  a.enqueue(10)
  print(a.top())
  a.enqueue(20)
  print(a.top())
  a.enqueue(30)
  print(a.top())
  print(a.search())
  print(a.dequeue())
  print(a.dequeue())
  print(a.dequeue())
  print(a.dequeue())

'자료구조' 카테고리의 다른 글

Tree?  (0) 2022.01.25
그래프 개념  (0) 2022.01.25
Python Linkedlist로 구현한 Stack  (0) 2022.01.11
Red Black Tree Removal  (0) 2021.09.06
Balanced tree편 Red black tree insert  (0) 2021.09.06
Comments