您的位置:首页 > 其它

第三章:栈与队列算法设计题(2)

2013-10-07 21:41 330 查看
#include <stdio.h>
#include <string.h>
//这是一个利用栈来判断回文字符串的操作;
/*
提示:
将一半字符入栈;
*/
#define N 100
char str
;
typedef struct LinkList
{
char *m;
int base,top;
}LinkList;
LinkList L;
void ChuShi(LinkList &L)
{
//初始化顺序栈操作;
L.top=L.base=0;
L.m=new char
;
if(!L.m) printf("分配空间失败!\n");
}
void RuZhan(LinkList &L,int len)
{
ChuShi(L);
int base=len-1,i;
//len为字符串长度,需要将字符串中的一半字符入栈;
len = len/2;
for(i=0;i<len;i++)
{
L.m[i]=str[base];
str[base--]=0;
L.top++;
}
str[len]=0;
}
int flag=1;
void PanDuan(char *str)
{
printf("这是一个判断回文字符串的函数:\n");
RuZhan(L,strlen(str));

//写一个判断字符串是否相等的函数;
int ll=strlen(str);
for(int i=0;i<ll;i++)
if(L.m[i]!=str[i]) flag=0;
if(flag) printf("Yes\n");
else printf("No\n");
}
int main()
{
printf("请输入一个字符串:\n");
scanf("%s",str);
PanDuan(str);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: