剑指Offer之用两个栈实现队列(题7)
创新互联成都企业网站建设服务,提供成都网站建设、成都网站制作网站开发,网站定制,建网站,网站搭建,网站设计,响应式网站开发,网页设计师打造企业风格网站,提供周到的售前咨询和贴心的售后服务。欢迎咨询做网站需要多少钱:18982081108
1 /**************************************** 2 > File Name:test.cpp 3 > Author:xiaoxiaohui 4 > mail:1924224891@qq.com 5 > Created Time:2016年05月23日 星期一 19时16分55秒 6 ****************************************/ 7 8 9 10 /* stack1保存最开始的输入栈,stack2保存要输出的数据的栈,这样 11 两个栈就可以实现一个队列了 12 例如:输入 5, 4, 3, 2, 1 13 栈顶 栈底 14 stack1保存的是 1, 2, 3, 4, 5 15 stack2保存的则是 5, 4, 3, 2, 1 16 则输出的是 5, 4, 3, 2, 1 */ 17 18 #include19 using namespace std 20 21 template 22 void CQueue ::appendTail(const T& node) 23 { 24 stack1.push(node); 25 } 26 27 template 28 T CQueue ::deleteHead() 29 { 30 if(stack1.size() <= 0) 31 { 32 printf("queue is empty\n"); 33 return NULL; 34 } 35 36 int count = stack1.size(); 37 while(count--) 38 { 39 T node = stack1.top(); 40 stack1.pop(); 41 stack2.push(node); 42 } 43 44 T top = stack2.top(); 45 stack2.pop(); 46 return top; 47 } 48 49 50
文章标题:剑指Offer之用两个栈实现队列(题7)
转载来源:http://ybzwz.com/article/jgepjc.html