#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct linklist{
char data[100];
int top,base;
};
int main(void)
{
struct linklist Q;
Q.top=Q.base=0;
int size,i,n;
char test[100];
printf("请输入字符串\n");
gets(test);
size=strlen(test);
printf("size=%d\n",size);
test[size] = '\0';
puts(test);
if(size<=0)
{
printf("error 000\n");
}
n=size/2;
if(size%2==0)//<=n偶数情况
{
for(i=0;i<n;i++)
{
Q.data[Q.top]=test[i];
Q.top++;
}// 入栈完毕
Q.top--;
for(i=Q.top;i>=0;i--)
{
printf("%c",Q.data[i]);
}//输出栈元素测试
printf("||");
for(i=n;i<size;i++)
{
printf("%c",test[i]);
}
printf("\n");
for(i=n;i<size;i++,Q.top--)
{
if(test[i]!=Q.data[Q.top])
{
printf("此字符出不是回文\n");
return 0;
}
}
printf("此字符串是回文\n");
}
else//奇数情况
{
for(i=0;i<n;i++)
{
Q.data[Q.top]=test[i];
Q.top++;
}//入栈
Q.top--;
for(i=Q.top;i>=0;i--)
{
printf("%c",Q.data[i]);
} //输出栈内元素测试
printf("||%c||",test[n]);
for(i=n+1;i<size;i++)
{
printf("%c",test[i]);
}
printf("\n");
for(i=n+1;i<size;i++,Q.top--)
{
if(test[i]!=Q.data[Q.top])
{
printf("此字符出不是回文\n");
return 0;
}
}
printf("此字符串是回文\n");
}
return 0;
}
15栈和队列的应用-回文的判定
最新推荐文章于 2021-11-19 09:23:54 发布