Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 동적 계획법
- 알고리즘
- merge-sort
- BST
- 자료구조
- 최단 경로 알고리즘
- 중위 표기법
- 완전 탐색
- 서로소 집합
- prim 알고리즘
- disjoint-sets
- 프로세스
- 알고리즘 문제
- 이진 검색
- kruskal 알고리즘
- quick-sort
- CPU scheduling
- 프로세스의 상태
- union-find
- divide and conquer
- binary search
- 이진탐색트리
- 트리
- 후위 표기법
- 3190번
- 탐욕 알고리즘
- deque
- 다이나믹 프로그래밍
- 최소 비용 신장 트리
- 부분 집합
Archives
- Today
- Total
Dionysus
[자료구조🧬] 큐 (Queue) 본문
📌 큐 (Queue)
스택(stack)과 마찬가지로 삽입과 삭제의 위치가 제한적인 자료구조
- FIFO(First In First Out) 구조이다.
✔ 큐 사용을 위해 필요한 주요 연산
```
createQueue() : 공백 큐 생성
enQueue(A) : 원소 A를 삽입
enQueue(B) : 원소 B를 삽입
deQueue(): 원소 반환/삭제
enQueue(C) : 원소 C 삽입
deQueue(): 원소 반환/삭제
deQueue(): 원소 반환/삭제
```
🚀 클래스로 구현한 큐
# 요소의 정보를 저장하기 위한 클래스
class Node:
# 데이터를 저장할 변수
# 다음 요소를 가리키기 위한 변수
def __init__(self, value):
self.value = value
self.next = None
def __str__(self):
return str(self.value)
class MyQueue:
# 상태값 front와 rear를 가짐
# enQueue(), deQueue(), Qpeek()을 멤버 메서드로 가짐
# Qpeek()은 요소를 삭제하지 않고 가장 앞 요소를 반환함
def __init__(self):
self.front = None
self.rear = None
def enQueue(self, item):
new_node = Node(item)
if self.front is None:
self.front = new_node
self.rear = new_node
else:
self.rear.next = new_node
self.rear = new_node
def deQueue(self):
prev = self.front
self.front = prev.next
return prev
queue = MyQueue()
queue.enQueue(5)
queue.enQueue(4)
queue.enQueue(3)
queue.enQueue(2)
queue.enQueue(1)
print(queue.deQueue(), end = ' ')
print(queue.deQueue(), end = ' ')
print(queue.deQueue(), end = ' ')
print(queue.deQueue(), end = ' ')
print(queue.deQueue(), end = ' ')
# 출력
5 4 3 2 1
'CS 및 알고리즘 공부 > CS' 카테고리의 다른 글
[CS 공부🤖 - 운영체제] Section 4. 프로세스 Ⅱ (0) | 2024.09.18 |
---|---|
[CS 공부🤖 - 운영체제] Section 4. 프로세스 Ⅰ (0) | 2024.09.01 |
[자료구조🧬] 트리(Tree) (0) | 2024.08.27 |