728x90
큐 (Queue)
한쪽에서 들어가면 반대쪽으로 나온다!! (First In First Out : FIFO 삐뽀ㅋ)
큐는 데이터를 넣고 뽑는걸 자주하는 자료구조이다.
스택과 유사하게 구현이 가능하다.
*)스택과는 다르게 큐는 시작과 끝의노드를 전부 가지고 있어야 한다.
주문들어온 순서대로 처리 해야할 때 사용한다.
ex) 웨이팅
여기서 헤드를 셋팅하는건 자료구조 마다 다르니 잘 기억 하도록 하자 !
*)스택과는 다르게 큐는 시작과 끝의노드를 전부 가지고 있어야 한다.
시작 !
class Queue:
def __init__(self):
self.head = None
self.tail = None
기능 !
enqueue() :마지막 데이터에 새로운 데이터를 삽입한다.
def enqueue(self, value):
new_node = Node(3)
if self.is_empty(): #노드가 없다면 처음과 끝을 새로운 노드로 지정
self.head = new_node
self.tail = new_node
self.tail.next = new_node #현재 마지막 노드의 다음이 새로운 노드이다
self.tail = new_node #새로운 노드를 마지막 노드로 지정해준다
return
dequeue():맨 앞 데이터 삭제
def dequeue(self): #큐는 헤드에 있는 데이터 먼저 지워준다.
if self.is_empty():#노드가 없다면 큐가 비었다고 말해준다
return "Queue is Empty"
delete_node = self.head # 맨 앞 데이터를 지우는 노드로 옮긴다
self.head = self.head.next # 헤드 다음노드를 헤드로 지정해준다
return delete_node.data #지운노드 출력
peek() : 맨 앞 데이터 출력
def peek(self):
if self.is_empty(): # 노드가 없다면 큐가 비었다고 말해준다
return "Queue is Empty"
return self.head.data #헤드 데이터 출력
is_empty():노드가 비었는지 체크
def is_empty(self):
return self.head is None
728x90
'개-발 > Python' 카테고리의 다른 글
[Python] Hash ? (0) | 2022.11.16 |
---|---|
[Python] 자료구조[Stack 스택] (2) | 2022.11.16 |
[Python]Array or LinkedList (0) | 2022.11.11 |
[Python] 반복문 가볍게 사용하기 (lambda , map , filter) (0) | 2022.11.08 |
[Python] 파이썬 기초 문법 (2) | 2022.11.08 |