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

```#include<stdio.h>          //用了c++里的&和cin.getline(),所以得用.cpp 等运行成功之后看下换成指针试下
#include<string.h>      //strlen
#include<stdlib.h>      //malloc
#include<iostream>
using namespace std;
typedef struct          //重定义struct为Stack
{int stack_size;int top;char* ch;
}Stack;
int InitStack( Stack&s,char* t)  //初始化顺序栈的大小
{int length = strlen(t);    s.ch = (char*)malloc(length * sizeof(char));   //初始化了顺序栈的大小   s.stack_size = length;if (s.ch != NULL){s.top = 0;   //将顺序栈置空,等会top++从数组t【0】开始}return 0;
}
int Push(Stack& s, char e)  //入栈
{if (s.top == s.stack_size)// 判断栈是否上溢return 1;s.ch[s.top] = e; s.top++;        return 0;
}
char Pop(Stack& s)  //出栈
{char temp;if (s.top == 0) //判断栈是否下溢return 1;else{s.top--;     //  因为上面入栈最后有个top++,会使指针再向上指一个值为空temp = s.ch[s.top];                 return temp;}
}
int IsPlalindrome(char* t)  //判断是否为回文
{Stack s;int len, i = 0;InitStack(s, t);            //先初始化栈len = strlen(t);           //求出字符串的长度for ( i = 0; i < len / 2; i++)Push(s, t[i]);           //在主函数中已经把它初始化了if (len % 2 == 1)i++;while (s.top >0)   // 一开始我这里是>=0,就会造成多循环一次,直接返回0{if (Pop(s) != t[i]){return 0;    //等会再函数(0)就为假}i++;}return 1;
}int main()
{int len=0;char* str;printf("你要输入几个字符:");scanf_s("%d", &len);    //读取到换行符时截至,把\n留在了缓冲区。getchar();    //吃掉回车str = (char*)malloc(len * sizeof(char));printf("请输入字符串:");gets_s(str,len+1);    // 不管是gets还是getline都给我报了内存缓冲区的错误//cin.getline(str,(len+1));    //遇到换行\n停止读入   输入4  assa  str只有ass   +1把空格读进来再抛弃if (IsPlalindrome(str))printf("是回文串");elseprintf("不是回文串");free(str);return 0;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    回文,就是将头尾互换,地址位置不需改变. #include <stdio.h> #include <string.h>const int TRUE = 1; const int ...

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

    #include <stdio.h> #include <string.h> #include <stdlib.h> #include<iostream> ...

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

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

最新文章

  1. 服务器性能估算参考(硬件-分析数据库)
  2. linux怎么卸载源码包安装mysql_Linux下卸载和安装MySQL[rpm包]
  3. 亚马逊 CTO 回应人脸识别技术质疑:技术无罪,我们无责任
  4. PHP比较时间段一与时间段二是否有交集
  5. python编程经典案例-一个非常适合Python新手的编程案例——投票小程序
  6. 开源的13个Spring Boot 优秀学习项目!超53K星,一网打尽!
  7. Spring 学习——Spring AOP——AOP配置篇Advice(有参数传递)
  8. Windows下使用python库 curses遇到错误消息的解决方案
  9. 计网 --- 域名服务系统:因特网的目录服务
  10. Mybatis(6)CURD增删改查操作
  11. ES5中的有9个Array方法
  12. 【POJ1584】A Round Peg in a Ground Hole,第一次的计算几何
  13. 基于深度学习的信道估计(DL-CE)基础知识
  14. [leetcode] Reverse Integer 反转一个整数
  15. ssh连接失败,排错经验
  16. 恒强系统服务器,恒强系统色码解析大全
  17. 浅谈Android测试技术
  18. 注册登录后才可以下载的源码_专注爬虫:20个精心总结爬虫项目,爬虫技术这里强(附源码)...
  19. zotero抓取知网文献
  20. 融入动画技术的交互应用——解压小游戏“蒲公英与星”

热门文章

  1. 弗洛伊德,迪杰斯特拉算法
  2. Linux 自检和 SystemTap
  3. 基因组注释1. 重复序列repeatmasker, trf
  4. 移植mysql到安卓手机_记录dbnet文本检测转ncnn并移植到安卓上
  5. ps软件怎么测试性能,实际性能测试:Photoshop处理
  6. cygwin完全安装步骤方法(组图)
  7. python怎么将删的代码恢复_找回丢失的Python代码--如果代码还驻留在内存中
  8. Linux 安装VMware Tools(open-vm-tools)实现桌面全屏、跨平台复制等功能
  9. PHP代码审计8—SSRF 漏洞
  10. 浅谈迪杰斯特拉(Dijkstra)算法和A*算法原理及实现