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 #include<iostream> 19 using namespace std 20 21 template<class T> 22 void CQueue<T>::appendTail(const T& node) 23 { 24 stack1.push(node); 25 } 26 27 template<class T> 28 T CQueue<T>::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
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。