判断字符串是否为回文数(c++ 顺序栈)
2015-07-21 11:13
549 查看
#include <iostream> using namespace std; #define MAXSIZE 100 class Stack { public: Stack(); bool pop(char &e); bool push(); bool IsEmpty(); bool huiwen(); char *GetStr(); ~Stack(); private: int top; char *data; char str[MAXSIZE]; };
<pre name="code" class="cpp">Stack::Stack() { top = -1; data = new char[MAXSIZE]; cin >> str; } Stack::~Stack() { delete[]data; } bool Stack::IsEmpty() { return (top == -1); } bool Stack::push() { int i = 0; while (str[i] != '\0') { if (top == MAXSIZE - 1) { return false; } data[top] = str[i]; i++; top++; } return true; } bool Stack::pop(char &e) { if (IsEmpty()) { return false; } top--; e = data[top]; return true; } bool Stack::huiwen() { char temp; for (int i = 0; str[i] != '\0'; i++) { pop(temp); if (str[i] != temp) { return false; } } return true; } char *Stack::GetStr() { return str; }
int main(){Stack S;<span style="white-space:pre"> </span>if(!S.push())
<span style="white-space:pre"> </span>cout << "error!" << endl;if (S.huiwen()){cout << S.GetStr() << "是回文数" << endl;}else{cout << S.GetStr() << "不是回文数" << endl;}system("pause");return 0;}
相关文章推荐
- Online Judge System For SzNOI 题库 语法百题 C++ d006
- 【C++】文件的读取与写入
- CString、string、char*之间的区别和转换
- C语言字符串中使用宏替换
- C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区
- Online Judge System For SzNOI 题库 语法百题 C++ d005
- Online Judge System For SzNOI 题库 语法百题 C++ d004
- leetcode之链表-单链表反转-C++
- c++ 计蒜客第11题移除数组重复元素
- 黑马程序员_C语言基础_分支结构(if……else,switch)
- Online Judge System For SzNOI 题库 语法百题 C++ d003
- C++ 操作符重载
- C++中string和vector用法总结
- Online Judge System For SzNOI 题库 语法百题 C++ d002
- c++ map 的基本操作
- [C++设计模式]template 模板方法模式
- Online Judge System For SzNOI 题库 语法百题 C++ d001
- 标准的window API 便利文件夹 c++
- C/c++几个预定义的宏:__DATE__,__TIME__,__FILE__,__LINE__
- 浅析pragma once与include guard