数据结构c语言版 :算法设计题 求大神解答。。在线等。。。 200

题目如下:二、算法设计题(exp3-1.c)1、回文测试【问题描述】试写一个算法判定给定的字符向量是否为回文(只需要把IsHuiwen函数中的__________替换成正... 题目如下:

二、算法设计题(exp3-1.c)

1、回文测试

【问题描述】

试写一个算法判定给定的字符向量是否为回文(只需要把IsHuiwen函数中的__________替换成正确的语句即可)。 
题目是 栈和队列 这一章的。。。
展开
 我来答
wong6764
2013-04-12 · TA获得超过9131个赞
知道大有可为答主
回答量:3350
采纳率:50%
帮助的人:1048万
展开全部
/*判断一段字符串是不是回文,所谓回文,也就
是正读反读都一样,如asdffdsa*/

#include<iostream>
#include<stdio.h>
using namespace std;
const int size=100;
class HuiWen
{
private:
char ch[100];
int top;
public:
HuiWen(){top = -1;};
void input(char c);
bool isHuiWen();
bool empty();
};
void HuiWen::input(char c)
{
//if(top==size-1) throw"上溢";
top++;
//cin>>ch[top];
ch[top]= c;
}
bool HuiWen::isHuiWen()
{
for(int i=0;i<top;i++)
if(ch[top--]!=ch[i])
return 0;
return 1;
}
bool HuiWen::empty()
{
if(top==-1)
return 1;
return 0;
}
int main()
{
HuiWen hw;
cout<<"请输入字符串,以回车键结束"<<endl;
int c;
while((c=getchar())!='\n')
hw.input(c); //主要就是这里做了修改。

if(hw.empty())
cout<<"对不起,无字符"<<endl;
else
{
if(hw.isHuiWen())
cout<<"该字符串是回文"<<endl;
else
cout<<"该字符串不是回文"<<endl;
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
略懂C语言
2013-04-12 · TA获得超过355个赞
知道答主
回答量:151
采纳率:100%
帮助的人:167万
展开全部
大概的原理是这样,你的题目没给清楚代码。
//返回TRUE或者非零表示是回文,返回FALSE或者0表示不是回文
int IsHuiwen(char *str)

{
int top, len;

char stack[MAX_SIZE]; //用数组模拟顺序栈

top = 0;

len = strlen(str);

while (top <= len/2) //将前一半的字符入栈

{
stack[top++] = *str++;

}

if (len%2 != 0) //如果有奇数个字符,那中间的那个是对称点,不用判断,直接出栈即可

{
--top;

}

while (top >= 0)

{
if (stack[top--] != *str++) //挨个出栈和后一半的字符比较,有一个不匹配就说明不是回文

return FALSE;

}

return TRUE; //说明是回文

}
以上代码未测试,有问题再问。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友26ad406
2013-04-11 · TA获得超过1611个赞
知道大有可为答主
回答量:1506
采纳率:100%
帮助的人:1066万
展开全部
题目不完整,自己写一个
bool isHuiwen(char *p)
{
int l=strlen(p);
for(i=0;i<l/2;++i)
{
if(p[i]!=p[l-1-i])
return false;
}
return true;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式