#include <iostream>
using namespace std;
#define MAXSIZE 100
typedef struct{ //栈的储存结构
char *base;
char *top;
int stacksize;}sqstack;
void initstack(sqstack &s){ //栈的初始化
s.base=new char[MAXSIZE];
if(!s.base)return;
s.top=s.base;
s.stacksize=MAXSIZE;
}
void push(sqstack &s,char e){ //入栈
if(s.top-s.base==s.stacksize)return;
*s.top++=e;
}
void pop(sqstack &s,char &e){ //出栈
if(s.top==s.base)return;
e=*--s.top;
}
int main(){
sqstack s;
int i,len; //定义变量i,len
char t[100]; //定义字符数组t
char c; //定义字符型变量c
initstack(s); //初始化栈
cin>>t;
len=strlen(t);
for(i=0;i<len/2;i++)
push(s.t[i]);
if(len%2!=0)i++;
while(s.base!-s.top)
{
pop(s,c);
if(c!=t[i]){
cout<<"不是回文"<<endl;
return 0;
}
else i++;}
cout<<"是回文";
return 0;
}
数据结构——第三章算法设计题(2):判断是否为回文
最新推荐文章于 2024-06-04 22:24:24 发布