포도가게의 개발일지
Python Linkedlist로 구현한 Queue 본문
반응형
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