您的位置:首页 > 其它

两个栈实现队列

2016-01-08 10:02 337 查看
设置两个栈实现队列的先进先出的功能。

两个栈设置为stack1,stack2。stack1是用于插入数据,stack2是用于删除数据。插入数据直接插入到stack1中即可,对于删除数据,那么是当stack1不为空时将stack1中的数据移动到stack2中,那么弹出栈顶元素即可。

代码如下:

void CQueue::AppendTail(int data)//入队列

{

stack1.Push(data);

}

int CQueue::DeleteHead()//出队列

{

if (stack2.empty() ==
1)//第二个栈为空,那么将数据从栈1中,移动到栈2中

{

while (stack1.empty()
!= 1)//只要不为空,那么就移动

{

stack2.Push(stack1.Pop());

}

}

if (stack2.empty() == 1)

{

cout<<"队列为空"<<endl;

exit(0);

}

int data = stack2.Pop();

return data;

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