标签:
参考博客:http://www.cnblogs.com/kaituorensheng/archive/2013/03/02/2939690.html
1 //前提已知: 2 struct Stack 3 { 4 int top; //栈顶指针 5 int stacksize;//栈的大小 6 int *s; //栈底指针 7 }; 8 void InitStack(Stack *s); 9 void Push(Stack *s, int k); 10 int Pop(*s); 11 int IsStackEmpty(*s); 12 int IsStackFull(*s);
思路
s1是入栈的,s2是出栈的。
1 void EnQueue(stack *s1,stack *s2,k){
2 Push(s1,k) //直接将元素压入s1
3 }
4
5
6 int DeQuene(stack *s1,stack *s2){
7 if(IsStackEmpty(s2)==1){ //s2若为空,先将s1的元素压入s2,再将s2的元素压入s1,
8 while(IsStackEmpty(s1)==0){
9 Push(s1,Pop(s2))
10 }
11 }
12 if(IsStackEmpty(s2)!=1)) //s2若不为空,直接将S2的栈顶元素弹出
13 return Pop(s2)
14 }
标签:
原文地址:http://www.cnblogs.com/hellochennan/p/5898267.html