원형 큐 [C++소스]
"본문 내용"은 언제나 휴일 본 사이트에 있습니다.
//원형 큐
#include <iostream>
using namespace std;
class Queue
{
int *buffer;
const int size;
int front;
int rear;
public:
Queue(int size):size(size)
{
buffer = new int[size];
front = rear = 0;
}
~Queue()
{
delete[] buffer;
}
bool Put(int data)
{
if(IsFull())
{
return false;
}
buffer[rear] = data;
rear = Next(rear);
return true;
}
int Get()
{
if(IsEmpty())
{
return 0;
}
int re = buffer[front];
front = Next(front);
return re;
}
bool IsFull()
{
return Next(rear) == front;
}
bool IsEmpty()
{
return front == rear;
}
private:
int Next(int now)
{
return (now+1)%size;
}
};
int main()
{
Queue q(10);//크기가 10인 큐
q.Put(4); //4
q.Put(7); //4 7
q.Put(8); //4 7 8
q.Put(2); //4 7 8 2
while(q.IsEmpty() == false)
{
cout<<q.Get()<<" ";
}
cout<<endl;
return 0;
}
프로그래밍 언어 및 기술 학습, 무료 동영상 강의 언제나 휴일
'C++ > 디딤돌 자료구조와 알고리즘 with C++' 카테고리의 다른 글
STL vector 흉내내서 만들기 [C++] (0) | 2016.06.11 |
---|---|
라운드 로빈 스케쥴러 시뮬레이션 [C++] (0) | 2016.06.11 |
스택 [C++ 소스] (0) | 2016.06.11 |
STL list 사용, 정렬 상태를 유지 (특정 키 순으로 보관) [C++ 소스] (0) | 2016.06.11 |
STL list 사용, 순차 보관 [C++ 소스] (0) | 2016.06.11 |