7-1 栈实现回文

输入一个字符串,判断该字符串是否为回文。回文就是字符串中心对称,从左向右读和从右向左读的内容是一样的。(不含空格)

复制代码
#include<bits/stdc++.h>
using namespace std;
#define MAX  100
typedef struct {
    char *base;
    char *top;
    int stacksize;
}SqStack;

void InitStack(SqStack &s)
{
    s.base = new char[MAX];
    if( !s.base ) exit(0);
    s.top = s.base;
    s.stacksize = MAX;
}
void Push(SqStack &s , char e)
{
    if(s.top - s.base == s.stacksize) return ;
    if(e == ' ')
    {
         printf("入栈不成功");
         exit(0);
    }
    *s.top++ = e;

}
char Pop(SqStack &s , char &e)
{
    if(s.top == s.base) return 0;
    return e = *--s.top;
}
int main()
{
    char data[MAX];

    int n;
    cin>>n;
    getchar();
    for(int i = 0 ; i < n; i++)
    {
        data[i] = getchar();
    }

    SqStack s;
    InitStack(s);

    for(int i = 0 ; i < n; i++)
    {
        Push(s , data[i]);
    }
    for(int i = 0 ; i < n; i++)
    {
        char e;
        if(data[i] != Pop(s , e) )
        {
            printf("此字符串不是回文串");
            return 0;
        }
    }
    printf("此字符串是回文串");
}
复制代码

 

posted @   旺旺大菠萝  阅读(82)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示