#include <iostream>
using namespace std;
void AddQueue(int *argQueue, int argNew)
{
int arrSize = sizeof(*argQueue)+1;
//cout << "(AddQueue) arrSize=" << to_string( arrSize ) << ", *argQueue=" << to_string( sizeof(*argQueue) ) << endl;
if(argQueue[arrSize-1]>0)
{
cout << "(AddQueue) Queue is FULL" << endl;
return;
}
if(argQueue[arrSize-1]<0)
{
cout << "(AddQueue) Queue is not available" << endl;
return;
}
for(int arrIdx=0; arrIdx<arrSize; arrIdx++)
{
if(argQueue[arrIdx]>0) { continue;/*해당 칸은 이미 투숙객이 있으니 다음 칸으로*/ }
argQueue[arrIdx]=argNew;
cout << "(AddQueue) new TAIL [" << to_string( arrIdx ) << "]=" << to_string( argQueue[arrIdx] ) << endl;
break;
}
}
int DeleteQueue(int *argQueue)
{
int result = 0;
int arrSize = sizeof(*argQueue)+1;
//cout << "(DeleteQueue) arrSize=" << to_string( arrSize ) << ", *argQueue=" << to_string( sizeof(*argQueue) ) << endl;
if(argQueue[arrSize-1]<0)
{
cout << "(DeleteQueue) not available" << endl;
return -1;
}
for(int arrIdx=0; arrIdx<arrSize; arrIdx++)
{
if(argQueue[arrIdx]<0) { continue;/*해당 칸은 이미 빈방이다.*/ }
result = argQueue[arrIdx];
argQueue[arrIdx]=-1;
//cout << "(DeleteQueue) update [" << to_string( arrIdx ) << "]=" << to_string( argQueue[arrIdx] ) << endl;
arrIdx = arrIdx+1;
if(arrIdx>=arrSize){ arrIdx=arrSize-1; }
cout << "(DeleteQueue) new HEAD [" << to_string( arrIdx ) << "]=" << to_string( argQueue[arrIdx] ) << endl;
break;
}
return result;
}
int main()
{
int queueI[5] = {0, 0, 0, 0, 0};
cout << "queueI SIZE=" << to_string(sizeof(queueI)) << endl;
cout << "*queueI SIZE=" << to_string(sizeof(*queueI)) << endl;
cout << "---------------------" << endl;
AddQueue(queueI, 2023);
AddQueue(queueI, 9);
AddQueue(queueI, 23);
AddQueue(queueI, 14);
AddQueue(queueI, 11);
AddQueue(queueI, 22);
AddQueue(queueI, 33);
DeleteQueue(queueI);
DeleteQueue(queueI);
DeleteQueue(queueI);
DeleteQueue(queueI);
DeleteQueue(queueI);
DeleteQueue(queueI);
AddQueue(queueI, 44);
AddQueue(queueI, 55);
return 0;
}