精品
2.bceda 3.3
三.解答题
1.
#define M 20 struct DStack{ Selemtype data[M]; int top1,top2; };
void InitStack(DStack &s) { s.top1=0; s.top2=M-1; }
int IsEmpty(DStack s,int i) { switch(i) { case 0:return s.top1==0; case 1:return s.top2==M-1; } }
int IsFull(DStack s) { return s.top1>s.top2; }
void Push(DStack &s ,int i,Selemtype x) { if (IsFull(s)) { cout<<\ return; } switch(i) { case 0: s.data[s.top1]=x; s.top1++; break; case 1: s.data[s.top2]=x; s.top2--; break;
精品
} return; }
Selemtype Pop(DStack &s,int i) { Selemtype e; if(IsEmpty(s,i)) { cout<<\ exit(-1); } switch(i) { case 0: s.top1--; e=s.data[s.top1]; break; case 1: s.top2++; e=s.data[s.top2]; } return e; } 2.
#define M 3 struct Stack{ Qelemtype data[M]; int top; };
struct Queue{ Stack s1; Stack s2; };
void InitQueue(Queue &Q) { Q.s1.top=0; Q.s2.top=0; }
int IsEmpty(Queue &Q) { if(Q.s1.top==0&&Q.s2.top==0) return 1; if(Q.s2.top==0&&Q.s1.top!=0) {
精品
while(Q.s1.top!=0) Q.s2.data[Q.s2.top++]=Q.s1.data[--Q.s1.top]; } return 0; }
int IsFull(Queue &Q) { if(Q.s1.top==M&&Q.s2.top!=0) return 1; if(Q.s1.top==M&&Q.s2.top==0) { while(Q.s1.top!=0) Q.s2.data[Q.s2.top++]=Q.s1.data[--Q.s1.top]; return 0; } if(Q.s1.top!=M) return 0; }
void InQueue(Queue &Q,Qelemtype e) { if(IsFull(Q)) { cout<<\ exit(-1); } Q.s1.data[Q.s1.top++]=e; }
void DeQueue(Queue &Q,Qelemtype &e) { if(IsEmpty(Q)) { cout<<\ exit(-1); } e=Q.s2.data[--Q.s2.top]; } 3.
功能:借助栈将队列Q中的元素逆置 队列Q的值:Q={8,4,25,34,12 } 精品
下面是古文鉴赏,不需要的朋友可以下载后编辑删除!!谢谢!! 九歌·湘君 屈原 朗诵:路英 君不行兮夷犹,蹇谁留兮中洲。 美要眇兮宜修,沛吾乘兮桂舟。 令沅湘兮无波,使江水兮安流。 望夫君兮未来,吹参差兮谁思。