回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。写一个算法判定给定的字符序列是否为回文。(提示:将一半字符入栈)。


输出结果:

主要算法:


//字符串一半入栈比较
int Compare(char x[])
{SqStack s;InitStack(s);int n = int(strlen(x));//将前一半字符串入栈for (int i = 0; i < n / 2; i++){Push(s, x[i]);}//判断字符串的奇偶int j;if (n % 2 == 0){j = n / 2;}else{j = (n + 1) / 2;}//将前一半元素出栈与后一半比较int flag = 0;for (int i = j; i < n; i++){char e=0, temp;Pop(s,e);temp = e;if (temp == e)flag=1;else{flag=0;break;}return flag;}return flag;
}

完整代码:

#include<iostream>
using namespace std;
//定义顺序栈
#define MAXSIZE 20
typedef struct
{char* base;char* top;int stacksize;
}SqStack;
//初始化
int InitStack(SqStack& S)
{S.base = new char[MAXSIZE];if (!S.base)return OVERFLOW;S.top = S.base;S.stacksize = MAXSIZE;return 1;
}
//入栈
int Push(SqStack& S, char e)
{if (S.top - S.base == S.stacksize)return 0;*S.top++ = e;return 1;
}
//出栈
int Pop(SqStack& S, char e)
{if (S.top == S.base)return 0;e = *--S.top;return 0;
}
//字符串一半入栈比较
int Compare(char x[])
{SqStack s;InitStack(s);int n = int(strlen(x));//将前一半字符串入栈for (int i = 0; i < n / 2; i++){Push(s, x[i]);}//判断字符串的奇偶int j;if (n % 2 == 0){j = n / 2;}else{j = (n + 1) / 2;}//将前一半元素出栈与后一半比较int flag = 0;for (int i = j; i < n; i++){char e=0, temp;Pop(s,e);temp = e;if (temp == e)flag=1;else{flag=0;break;}return flag;}return flag;
}
int main()
{cout << "请输入长度小于"<<MAXSIZE<<"的字符串:"<<endl;char stack[MAXSIZE];cin >> stack;if (Compare(stack)){cout << "此序列是回文数!" << endl;}else{cout << "此序列不是回文数!" << endl;}return 0;
}

判定给定的字符序列是否为回文【数据结构】【栈】相关推荐

  1. 回文是指正读反读均相同的字符序列;如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符序列是否是回文。(提示:将一半字符入栈)

    文章目录 1.题目描述 2.算法实现 1.题目描述 回文是指正读反读均相同的字符序列:如"abba"和"abdba"均是回文,但"good" ...

  2. 回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。编写一个程序,使用栈判定给定的字符序列是否为回文。

    内容: 回文是指正读反读均相同的字符序列,如"abba"和"abdba"均是回文,但"good"不是回文.编写一个程序,使用栈判定给定的字符 ...

  3. 回文是指正读反读均相同的字符序列;如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符序列是否是回文。

    步骤:1.通过InitStack()函数来初始化栈 2.通过Push()函数来压栈 3.通过Pop()函数来弹栈 4.通过StackEmpty()函数来进行栈的判空 5.通过Panduan()函数来进 ...

  4. P85.2.(2)回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符序列是否是回文。(提示:将一半的字符入栈)(C语言描述)

    做这个题时遇到个bug,即main()中的第一句,我定义了指针str_input用来装输入的字符串,但是后面赋值操作却用了get(),如果要用get()读入字符串的话就应该将str_input定义为数 ...

  5. 回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)

    栈与队列习题:回文是指正读反读均相同的字符序列,如"abba"和"abdba"均是回文,但"good"不是回文.试写一个算法判定给定的字符向 ...

  6. 回文是指正读反读均相同的字符序列,如“abba“和“abdba“均是回文,但“good“不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)

    题目要求:回文是指正读反读均相同的字符序列,如"abba"和"abdba"均是回文,但"good"不是回文.试写一个算法判定给定的字符向量是 ...

  7. 类C语言--栈与队列习题:回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)

    此代码可以正常运行,下附有运行界面,是是实实在在的类C语言 将字符串前一半入栈,然后,栈中元素和字符串后一半进行比较.即将第一个出栈元素和后一半串中第一个字符比较,若相等,则再出栈一个元素与后一个字符 ...

  8. 1.回文是指正读和反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈。)2.假设以带头结点的循环链

    typedef struct StackNode {char date;struct StackNode* next; }*LinkStack,StackNode; //初始化链栈 void Init ...

  9. 剑指offer:汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。

    汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果.对于一个给定的字符序列S,请你把其循环左移K位后的序列输出.例如,字符序列S="abc ...

最新文章

  1. 雷军的最后一次 重 大 创 业
  2. 程序员每天工作摸鱼俩小时,月薪35K?
  3. Python 3.8.0来了!
  4. Our Proof : Page Scraping : Website Data Extraction : Data Mining Analytics : Connotate.com
  5. 发动机异响故障诊断与排除_发动机缺缸故障诊断以及排除方法
  6. 单点登陆_别再问我单点登陆
  7. java xml文件内容替换_java读取xml文件并转换成对象,并进行修改
  8. 面向过程和面向对象编程的优缺点
  9. 360 自动打开word_Word文档高手的组合键用法,你知道几个?
  10. poj 2528_2
  11. hbase 按时刻查询_Hbase查询工具类,根据时间查询数据
  12. 本科,程序员,北京工作两年多,税后12k,出路在哪里?
  13. 阶段1 语言基础+高级_1-3-Java语言高级_07-网络编程_第1节 网络通信概述_2_网络通信协议...
  14. cad插件苹果系统_CAD看图软件mac版|CAD迷你看图 for Mac下载 v4.0.0 官方版_最火软件站...
  15. oracle解锁sysman用户,详解Oracle如何解锁用户的方法
  16. web数据可视化(ECharts版)
  17. 【元胞自动机】基于元胞自动机实现高速公路收费站交通流问题附matlab代码
  18. 疫苗预约系统,疫苗预约管理系统,疫苗预约小程序系统设计与实现
  19. linux 内核编号含义_Linux kernel内核源代码代号:mainline、longterm的含义
  20. SpringBoot项目部署到Tomcat中的两种方式(jar和war)

热门文章

  1. C语言—深度剖析数据在内存中的存储
  2. STC15系列单片机外设参考资料
  3. 20种应该避免的逻辑思维错误(上)
  4. 多事之秋-最近在阿里云上遇到的问题:负载均衡失灵、服务器 CPU 100%、被 DDoS 攻击...
  5. 高中学历学Java能找到工作吗?
  6. C语言中闭包的探究及比较
  7. device-side assert triggered at /pytorch/aten/src/THC/THCReduceAll.cuh:327
  8. Oracle VM VirtualBox退出全屏的方法
  9. HPB共识算法选举机制描述
  10. WebRTC信令服务器