两个队列实现栈

 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 }

 

posted @ 2018-11-24 19:34  执著的追求  阅读(91)  评论(0编辑  收藏  举报