10.1-2 说明如何用一个数组A[1..n]来实现两个栈,使得两个栈中的元素总数不到n时,两者都不会发生上溢,注意PUSH和POP操作的时间应为O(1)。
2013-03-10 11:00
666 查看
#include "iostream" #include "string" using namespace std; int A[9]={-1,1,2,3,4,5,6,7,8}; int top_s1=0,top_s2=9; bool PUSH(string s,int x){ if(top_s1+1==top_s2) return false; else{ if(s=="s1"){ top_s1++; A[top_s1]=x; } else{ top_s2--; A[top_s2]=x; } return true; } }//入栈 int POP(string s){ if(s=="s1"&&top_s1==0||s=="s1"&&top_s2==9) return -1; else{ if(s=="s1"){ top_s1--; return A[top_s1+1]; } else{ top_s2++; return A[top_s2-1]; } } }//出栈 void main(){ PUSH("s1",12); PUSH("s2",32); PUSH("s1",67); PUSH("s2",24); PUSH("s1",13); PUSH("s1",14); PUSH("s1",15); PUSH("s1",16); if(!PUSH("s1",11)) cout<<"堆栈已经满了!!!"<<endl; for(int i=1;i<9;i++) cout<<A[i]<<" "; cout<<endl; getchar(); getchar(); }
相关文章推荐
- 10.1-2 在一个数组A[1..n]中实现两个栈,使得两个栈元素个数之和不为n时,两者不会上溢
- 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
- 《剑指Offer》用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型
- 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
- 4.用两个栈 c181 来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
- 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
- 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型
- 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
- 用两个栈实现队列 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型
- 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
- 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
- c++ 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
- 实现一个栈(元素遵守先入后出顺序),能够通过 min 方法在 O(1)时间内获取栈中的最小元素。同时,栈的基本操作:入栈(Push)、出栈(Pop),也是在O(1)时间内完成的
- 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型
- 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
- 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
- java 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
- 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
- 用两个栈来实现一个队列完成队列的Push和Pop操作 队列中的元素为int类型。
- 用两个栈来实现一个队列,完成队列的Push和Pop操作。队列中的元素为int类