您的位置:首页 > 其它

顺序队列的基本操作;

2011-11-27 16:45 471 查看
// 顺序队列的基本操作;
#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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: