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

来源:互联网 发布:wap淘宝流量真实吗 编辑:程序博客网 时间:2024/06/15 15:21
#include <stdio.h>#include <string.h>//这是一个利用栈来判断回文字符串的操作;/*提示:    将一半字符入栈;*/#define N 100char str[N];typedef struct LinkList{    char *m;    int base,top;}LinkList;LinkList L;void ChuShi(LinkList &L){    //初始化顺序栈操作;    L.top=L.base=0;    L.m=new char[N];    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;}

 

0 0