DataStructure/Header/Queue.h at e1c6dde7f506c76e6fc676a15f2f92fb46fda7cf · applejin0105/DataStructure
자료구조 연습. Contribute to applejin0105/DataStructure development by creating an account on GitHub.
github.com
특징
- 배열 기반의 원형 큐 구조.
- 선입선출(FIFO) 방식으로 데이터 처리.
- 내부 용량 자동 확장 및 축소.
- C++ 스타일 반복자 지원 (begin(), end()) : Iterator
- Resize 함수로 동적 메모리 관리.
Enqueue(val) | bool | 값을 큐에 삽입 |
Dequeue(out) | bool | 값을 제거하고 out에 반환 |
Front(out) | bool | 큐의 첫 값 확인 (삭제 X) |
IsEmpty() | bool | 큐가 비어있는지 여부 |
IsFull() | bool | 큐가 가득 찼는지 여부 |
Size() | int | 현재 요소 수 |
Capacity() | int | 큐의 전체 용량 |
operator[] | T& | 인덱스로 요소 접근 |
begin() / end() | Iterator | 반복자 반환 |
#include <iostream>
#include "Queue.h"
using namespace std;
int main()
{
Queue<int> q;
cout << "[1] Enqueue Test\n";
for (int i = 1; i <= 5; ++i) q.Enqueue(i);
for (int i = 0; i < q.Size(); ++i) cout << q[i] << " ";
cout << "\n";
cout << "[2] Dequeue Test\n";
int val;
q.Dequeue(val); cout << "Dequeued: " << val << "\n";
cout << "[3] Front Test\n";
if (q.Front(val)) cout << "Front: " << val << "\n";
cout << "[4] Iterator Test\n";
for (int i = 1; i <= 5; ++i) q.Enqueue(i * 10);
for (auto v : q) cout << v << " ";
cout << "\n";
cout << "[5] Clear Test (by repeated Dequeue)\n";
while (!q.IsEmpty()) q.Dequeue(val);
cout << "Size after clearing: " << q.Size() << "\n";
}
'Study > DataStructure' 카테고리의 다른 글
HashTable (0) | 2025.05.15 |
---|---|
LinkedList (0) | 2025.04.21 |
Stack (0) | 2025.04.21 |
Array (0) | 2025.04.21 |
자료구조 구현해보기 (0) | 2025.04.21 |