码迷,mamicode.com
首页 > 其他好文 > 详细

两个队列实现栈

时间:2018-11-24 21:00:21      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:return   code   ==   --   turn   queue   ace   null   删除元素   

 1 push(const T& element)
 2 {
 3 if(queue1.size()>0)//如果queue1不为空则往queue1中插入元素
 4 queue1.push(element);
 5 else if(queue2.size()>0)//如果queue2不为空则往queue2中插入元素
 6 queue2.push(element);
 7 else//如果两个队列都为空,则往queue1中插入元素
 8 queue1.push(element);
 9 
10 }
11 
12 //删除元素
13 T CStack<T>::pop()
14 {
15 if(queue1.size()==0)//如果queue1为空
16 {
17 while(queue2.size()>1)//保证queue2中有一个元素,将其余元素保存到queue1中
18 {
19 queue1.push(queue2.front());
20 queue2.pop();
21 }
22 
23 T& data=queue2.front();
24 queue2.pop();
25 return data;
26 }
27 else//如果queue2为空
28 {
29 while(queue1.size()>1)//保证queue2中有一个元素,将其余元素保存到queue1中
30 {
31 queue2.push(queue1.front());
32 queue1.pop();
33 }
34 T& data=queue1.front();
35 queue1.pop();
36 return data;
37 }
38 
39 删除字符串空格
40 void TrimSpace(char *str)
41 {
42 if(str == NULL)
43 return ;
44 int i=0;
45 int j=0;
46 while(str[j] ==  ) ++j;
47 int n = strlen(str);
48 int k = n-1;
49 while(str[k] ==  )--k;
50 str[k+1] = \0;
51 while(str[j] != \0)
52 {
53 while(str[j] ==  )++j; 
54 if(str[j-1] ==   && str[j-2] ==   && i != 0)
55 str[i++] =  ;
56 str[i++] = str[j++];
57 }
58 str[i] = \0;
59 }

 

两个队列实现栈

标签:return   code   ==   --   turn   queue   ace   null   删除元素   

原文地址:https://www.cnblogs.com/susidian/p/10013155.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!