算法思路:
将字符串中全部字符进栈,然后将栈中的字符逐个与原字符串中的字符进行比较。
#include <iostream>
using namespace std;
typedef struct{
char data[1000];
int top;
}Stack;
void Init_stack(Stack *s)
{
s->top=0;
}
int Push_stack(Stack *s,char x)
{
s->data[s->top]=x;
s->top++;
return 1;
}
int Pop_stack(Stack *s,char *x)
{
*x=s->data[s->top-1];
s->top--;
return 1;
}
int main(int argc, char *argv[])
{
char data[1000];
int i,j;
Stack s;
char x;
Init_stack(&s);
cin>>data;
for(i=0;i<strlen(data);i++)
{
Push_stack(&s,data[i]);
}
for(i=0;i<strlen(data);i++)
{
Pop_stack(&s,&x);
if(data[i]!=x)
{
cout<<"不是回文数"<<endl;
return 0;
}
}
cout<<"回文数"<<endl;
return 0;
}