C++栈和队列判断回文

更新时间:2023-06-18 14:21:37 阅读: 评论:0

C++栈和队列判断回⽂利⽤栈和队列的特性设计⼀个算法,⽤于判断⼀个字符串是否为回⽂。
测试输⼊
abcdefg↵
期待的输出
不是回⽂↵
测试输⼊
abccba↵英语书评
期待的输出
是回⽂↵
#include<iostream>
using namespace std;
class abstack {
public:
bool IsEmpty(){
return(height ==0)?true:fal;
}
virtual bool Push(int x)=0;
virtual int Pop()=0;
virtual void Clear()=0;
int height;
};
class SeqStack :public abstack
{
public:
国外经典>单手模式SeqStack(int i =10);
SeqStack &Copy(const SeqStack &s)
{
maxsize = s.maxsize;
elements =new int[maxsize];
生活告诉我int len = s.height;
for(int i =0; i < len; i++)
{
elements[i]=*(s.elements + i);
}
top = s.top;
height = s.height;
return*this;
}
交通管理平台
SeqStack(SeqStack & s)
{
Copy(s);
}
~SeqStack()
{
Clear();
}
bool Push(int x);
int Pop();
void Clear(){delete[]elements;}
protected:
int top;
int*elements;
int maxsize;
};
SeqStack::SeqStack(int i)
{
height =0;
top =-1;
top =-1;
maxsize = i>10? i :10;
elements =new int[maxsize]; }
bool SeqStack::Push(int x)
{
if(top +1== maxsize)
唐诗宋词
return fal;
el elements[++top]= x;
height++;
return true;
}
int SeqStack::Pop()
{
int x;
if(IsEmpty())
return fal;
el
{
x = elements[top];
top--;
height--;
return x;
}
坚持}
int main()
{
SeqStack a,d;
char c;
c =getchar();
while(c!='\n')
{
a.Push(c);
c=getchar();
}
SeqStack b(a);
while(!b.IsEmpty())
{
d.Push(b.Pop());
}
while(!a.IsEmpty())
{
黄色小笑话
if(a.Pop()!= d.Pop())
{
cout <<"不是回⽂\n";
return0;
}
}
cout <<"是回⽂"<<endl;
//system("pau");
return0;
}

本文发布于:2023-06-18 14:21:37,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1044121.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:判断   队列   算法   设计   特性   经典   输出
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图