본문 바로가기

Study/DataStructure

Queue

https://github.com/applejin0105/DataStructure/blob/e1c6dde7f506c76e6fc676a15f2f92fb46fda7cf/Header/Queue.h

 

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