#include<d2d1effecthelpers.h>#include"Stack.h"Stack::Stack(){
size = MAX_SIZE;
top =-1;
data =newchar[size];
cin >> str;};Stack::Stack(int s){
size = s;
top =-1;
data =newchar[size];
cin >> str;}Stack::~Stack(){delete[] data;}boolStack::push(){int i;if(!isFull()){
data[++top]= str[i];//top值先+1,然后压入
i++;returntrue;}returnfalse;}boolStack::pop(char&e){if(isEmpty()){returnfalse;}else{
e = data[top--];//先取top的值将其返回,然后top的值-1}returntrue;}boolStack::isEmpty(){if(top ==-1)returntrue;elsereturnfalse;}boolStack::isFull(){if(top +1== size)//size换成了MAX_SIZE是不对的,有参构造函数和有参构造函数returntrue;elsereturnfalse;}boolStack::palindromic(){char temp;for(int i =0; data[i]!='\0';++i){pop(temp);if(str[i]!= temp)returnfalse;returntrue;}}char*Stack::getStr(){return str;}
Stack.h
//// Created by 63400 on 2021/10/30.//#ifndefHOMEWORK_STACK_H#defineHOMEWORK_STACK_H#include<iostream>usingnamespace std;constint MAX_SIZE =100;classStack{private:char* data;//指向数组的指针int size;//数组的大小int top;//栈顶char str[MAX_SIZE];public:Stack();Stack(int);~Stack();boolpush();//压栈boolpop(char&e);//出栈并返回出栈元素chargetTop();//获取栈顶元素boolisEmpty();//判断栈是否为空boolisFull();//判断栈是否为满voidsetNull();//将栈设置为空boolpalindromic();//判断是否为回文串char*getStr();//获取字符串};#endif//HOMEWORK_STACK_H