C++中用两个标准容器stack,实现一个队列的方法详解
C++中用两个标准容器stack,实现一个队列的方法详解
发布时间:2016-12-28 来源:查字典编辑
摘要:代码如下所示:复制代码代码如下://StackToQueue.cpp:定义控制台应用程序的入口点。//用两个标准容器stack,实现一个队列...

代码如下所示:

复制代码 代码如下:

// StackToQueue.cpp : 定义控制台应用程序的入口点。

//用两个标准容器stack,实现一个队列

#include "stdafx.h"

#include <iostream>

#include <stack>

using namespace std;

template <class T>

class StackToQueue

{

public:

StackToQueue()

{

stack1;

stack2;

}

void push(T e)

{

while (!stack2.empty())

{

T temp;

temp = stack2.top();

stack2.pop();

stack1.push(temp);

}

stack2.push(e);

while (!stack1.empty())

{

T temp;

temp = stack1.top();

stack1.pop();

stack2.push(temp);

}

}

void pop()

{

stack2.pop();

}

T front()

{

if (!empty())

{

return stack2.top();

}

else

{

return NULL;

}

}

bool empty()

{

return stack2.empty();

}

size_t size()

{

return stack2.size();

}

private:

stack<T> stack1, stack2;

};

int _tmain(int argc, _TCHAR* argv[])

{

StackToQueue<int> queue;

int i(0);

cout << "Enter several integer number,and press ctrl+z to the end." << endl;

while (cin >> i)

{

queue.push(i);

}

cout << "The front element is: " << queue.front() << endl;

cout << "The size now is: " << queue.size() << endl;

if (!queue.empty())

{

cout << "Pop one element now." << endl;

queue.pop();

}

cout << "The front element is: " << queue.front() << endl;

cout << "The size now is: " << queue.size() << endl;

return 0;

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新C语言学习
热门C语言学习
编程开发子分类