|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
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
|
本文转自 ye小灰灰 51CTO博客,原文链接:http://blog.51cto.com/10704527/1783635,如需转载请自行联系原作者