数据结构-回文数
来源:互联网 发布:淘宝商家登陆 编辑:程序博客网 时间:2024/05/29 14:01
回文是指正读反读均相同的字符序列,如"abba"和"abdba"均是回文,但"good"不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)。
#include <iostream>#include <string.h>using namespace std;#define MAXSIZE 100#define ERROR 0#define OK 1#define MAXSIZE 100#define OVERFLOW -2typedef int Status;typedef char selemtype;typedef struct{selemtype *base;selemtype *top;int stacksize;}SqStack;//初始化Status InitStack(SqStack &S){S.base=new selemtype[MAXSIZE];if(!S.base) return OVERFLOW;S.top=S.base;S.stacksize=MAXSIZE;return OK;}//入栈Status Push(SqStack &S,selemtype e){if(S.top-S.base==S.stacksize) return ERROR;*S.top++=e;return OK;}//出栈Status Pop(SqStack &S,selemtype &e){ if(S.top==S.base)return ERROR; e=*--S.top; return OK;}bool StackEmpty(SqStack S){if(S.top!=S.base) return true;elsereturn false;}int IsHuiWen(char *t)//将一半字符入栈,再弹出字符比较, //int IsHuiWen(char t[]) //注意字符序列长度的奇偶性 { int flag=0;SqStack s;selemtype e,temp;InitStack(s);int i,n;n=strlen(t);for(i=0;i<n/2;i++)//将一半字符入栈 {Push(s,t[i]);}for(i=(n%2==0? n/2:(n+1)/2);i<n;i++)//判断n的奇偶性 {Pop(s,e);temp=e;if(temp==t[i])flag=1;else{flag=0;break;}}return flag;}int main(){cout<<"请输入长度不大于100的字符序列:\n";char str[MAXSIZE]; cin>>str;if(IsHuiWen(str))cout<<"此序列是回文数!\n";elsecout<<"此序列不是回文数!\n";return 0; }
0 0
- 数据结构-回文数
- 【数据结构】队列+栈 判断回文数
- 数据结构 用栈和队列判断回文数
- 【C++】是否为回文数(数据结构试验3)
- 回文回文数 HUST
- 回文数&&回文串
- 回文数
- 回文数
- 回文数
- 回文数
- 回文数
- 回文数
- 回文数
- 回文数
- 回文数
- 回文数
- 回文数
- 回文数
- CSS定位深入理解 完全掌握CSS定位 相对定位和绝对定位
- Mongodb亿级数据量的性能测试
- D3.js 以圆做点绘制力图(一)
- 10+ MySQL Reporting Tools
- EAI和SOA比较
- 数据结构-回文数
- 总结一个随机抽取算法(全部item出现概率和为100%)
- 十月末总结
- 【STL】【STL颓废笔记】【2014-10-29】
- SpringMVC Controller 介绍
- NSArray 排序sortedArrayUsingComparator
- openfire Android学习---android客户端聊天开发之登录 和 注销登录
- mysql运行转储的sql文件导入大批量数据时,报错:Lost connection to MySQL server during query
- /cdata/crs 产生大量的数字命名的文件 HPUX-ia64 Error: 28: No space left on device