您的位置:首页 > 编程语言 > C语言/C++

判断字符串是否为回文数(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;}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: