//试写一个算法判定是否为回文序列
#include
#include
int main(){
# define stacksize 100
typedef char datatype;
typedef struct
{
datatype data[stacksize];
int top;
}seqstack;
int i; seqstack * s,p;char x;
int m;
int a [10];
int length = (sizeof(a)/sizeof(a[0]));
s=(seqstack*)malloc(sizeof (seqstack));
if(s->top==stacksize-1){
return 1;
}else{
printf("栈已满");
}
for (i=0;i
scanf("%d",&a[i]);
}
if(length%2==0){
for(i=0;i
s->data[++s->top]=a[i];
}
m =length/2+1;
x=s->data[s->top];
if( x==a[m]){
while(i=2;i<=length/2+2;i++){
int n =length/2+i;
s->top--;
if(s->data[s->top]==a[n]){
printf("是回文数");
}else{
printf("不是回文数");
}
}
}else{
printf("不是回文数");
}
}else{
for(i=0;i
s->data[++s->top]=a[i];
}
m =length-1;
x=s->data[s->top];
if(x==a[m]){
while(i=2;i<=(length-1)/2+2;i++){
int n =(length-1)/2+i;
s->top--;
if(s->data[s->top]==a[n]){
printf("是回文数");
}else{
printf("不是回文数");
}
}
}
}
}