1、头文件建立#include "stdafx.h"#include<iostream>using namespace std;#define START 100;#define LATER 10;
2、结构体的建立typedef struct QNode{ QElemType data; struct QNode * next;}QNode,*Queueptr;typedef struct{ Queueptr front; Queueptr rear;}LinkQueue;typedef char SElemType;typedef char QElemType;typedef struct{ SElemType *base; SElemType *top; int stacksize;}stack;
3、栈和对列的基本操作char push(stack&s,SElemType e){ if (s.top -s.base >=s.stacksize ) { s.base =(SElemType*)realloc(s.base ,(s.stacksize +10)*sizeof(SElemType)); if(!s.base)exit(OVERFLOW); s.top =s.base +s.stacksize ; s.stacksize +=10; } *s.top ++=e; return 1;}char pop(stack&s,SElemType&e){if(s.top ==s.base )return 0; e=*--s.top ; cout<<e; return e;}char EnQueue(LinkQueue&q,QElemType e){ p = (Queueptr)malloc(100*sizeof(QNode)); if(!p)exit(OVERFLOW); p->data=e; p->next=p; q.rear ->next =p; q.rear =p; return 1;}char DeQueue(LinkQueue&q,QElemType&e){ if(q.front ==q.rear )return 5; p=q.front->next ; e=p->data; q.front ->next =p->next;if(q.rear ==p)q.rear =q.front ; cout<<e; free(p); return e;}
4、结果 测试
5、栈和对列的建立char InitQueue(LinkQueue&q){ q.front =q.rear =(Queueptr)malloc(100*sizeof(QNode)); if(!q.front )exit(OVERFLOW); q.front ->next= NULL; return 1;}Queueptr p;char InitStack(stack&s){ s.base =(SElemType*)malloc(100*sizeof(SElemType)); if(!s.base )exit(OVERFLOW); s.top =s.base ; s.stacksize =100; return 1;}
6、主函数的调用int _tmain(int argc, _TCHAR* argv[]){ int x=0; QElemType f; LinkQueue q; SElemType a; stack s; InitStack(s); InitQueue(q); int b=0; char c[30]; cout<<"请?输º?入¨?串ä?"; cin>>c; while (c[b] != '@'){ push(s,c[b]); EnQueue(q, c[b]); b++; } for (int i=0;i<b;i++) { char m=pop(s,a); char n=DeQueue(q,f); if(m!=n) {cout<<"不?是º?回?文?"<<endl; break;} } cout<<"是º?回?文?"<<endl; return 0;}