C语言利用栈判断字符串是否为回文
2017-11-12 09:31
274 查看
#include<stdio.h> #include<string.h> #define OK 1 #define ERROR 0 typedef char ElemType; typedef int Status; typedef struct Stack1 { ElemType data; struct Stack1 *next; }Stack1,*SqlStack1; //初始化一个栈 Status Init(SqlStack1 &L) { L->next=NULL; } //进栈操作 Status In(SqlStack1 &L,ElemType e) { SqlStack1 p; p=new Stack1; p->data=e; p->next=L; L=p; return OK; } //出栈操作 ElemType Out(SqlStack1 &L) { ElemType r; r=L->data; L=L->next; return r; } int main() { SqlStack1 L; int s_length; int result=0; L=new Stack1; char s[20]; ElemType c1,c2; printf("请输入想要判断的字符串:"); scanf("%s",&s); s_length=strlen(s); //取得要判断的字符串长度 //进栈操作 for(int k=1;k<=s_length/2;k++) { In(L,s[k-1]); } if(s_length%2==0) //判断字符串长度是奇数还是偶数 { for(int i=1;i<=s_length/2;i++) { c1=Out(L); c2=s[s_length/2+i-1]; if(c1==c2) //进行判断 { result=1; continue; } else { result=0; break; } } } else { for(int j=1;j<=s_length/2;j++) { c1=Out(L); c2=s[s_length/2+j]; if(c1==c2) //进行判断 { result=1; continue; } else { result=0; break; } } } //输出操作 if(result==1) { printf("该字符串是回文字符串!"); } else { printf("该字符串不是回文字符串!"); } return 0; }
相关文章推荐
- 利用栈和队列判断字符串是否是回文——c语言
- 利用顺序栈判断字符串是否回文
- 数据结构常见问题(二)利用栈和队列判断字符串是否是回文
- Android利用MD5码判断字符串是否相等
- 判断一个数是否为回文数,字符串是否为回文字符串
- 判断一个字符串是否是回文,如果是,返回字符串“yes”,如果不是,返回字符串“no”
- java 记——课本例题,判断一个字符串是否是回文
- C语言 判断字符串是否回文
- 判断一个字符串是否为回文(递归)
- 从键盘输入任意字符串,判断其是否是回文字符串。
- 用递归实现判断一个字符串是否是回文的方法
- Java判断字符串是否是回文
- 设计一个算法判断一个字符串是否是回文
- 第十五周oj题目判断字符串是否回文
- 笔试题判断字符串是否是回文
- 判断字符串string所有分割和子串是否为回文(palindrome)并返回结果(Palindrome Partitioning)
- 判断一个数(或字符串)是否是回文数(回文字符串)
- 问题 C: 判断字符串是否为回文
- 写一函数int fun(char *p)判断一字符串是否为回文,是返回1,不是返回0,出错返回-1
- 判断字符串是否为回文