#include "stdafx.h"
#include <iostream>
#include <vector>
#define MaxSize 1000
using namespace std;
// first指向队列的第一个元素的前一个位置,而last则指向最后一个
// 排队的元素;
int first,last;
// 初始化一个队列
void InitialQueue(int& first,int& last)
{
first = -1;
last = -1;
}
// 测试队列是否为空
int IsEmptyQueue(int& first,int& last)
{
return first == last;
}
// 取当前队头元素
int GetQue(int iQueue[],int first,int last,int& iElem)
{
if (IsEmptyQueue(first,last))
{
cout << "队是空的,操作失败。"<< endl;
return 0; // 操作失败;
}
else
{
iElem = iQueue[first + 1];
return 1; // 操作成功;
}
}
// 入队
int AddQueue(int& last,int item,int iQueue[])
{
if (last == MaxSize - 1)
{
return 0; // 队列已满,插入失败;
}
else
{
iQueue[++ last] = item;
return 1;
}
}
// 从队列中删除一个元素; 出对;
int DeleteQueue(int& first,int& last,int iQueue[],int& item)
{
if (IsEmptyQueue(first,last))
{
return 0; // 队列为空,删除失败;
}
else
{
item = iQueue[++ first];
return 1; // 删除成功
}
}
// test main函数
int main(int argc,char* argv[])
{
int queue[10] = {0};
InitialQueue(first,last);
int iNumber = 100;
AddQueue(last,iNumber,queue);
int iTop = 0;
GetQue(queue,first,last,iTop);
cout << iTop;
cout << endl;
DeleteQueue(first,last,queue,iTop);
GetQue(queue,first,last,iTop);
cout << "删除后的栈顶元素看看是否为100:" << endl;
cout << iTop << endl;
return 0;
}