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

P85.2.(2)回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符序列是否是回文。(提示:将一半的字符入栈)(C语言描述) 做这个题时遇到个bug,即main()中的第一句,我定义了指针str_input用来装输入的字符串,但是后面赋值操作却用了get(),如果要用get()读入字符串的话就应该将str_input定义为数组,编译时没有报错,但运行时出错。我调试的时候一直以为bug在IsPlalindrome()里面,耽误了很久的时间。基础知识不够牢固啊! #include <stdio.h> #in... 阅读详情

此代码可以正常运行,下附有运行界面,是是实实在在的类C语言
将字符串前一半入栈,然后,栈中元素和字符串后一半进行比较。即将第一个出栈元素和后一半串中第一个字符比较,若相等,则再出栈一个元素与后一个字符比较,……,直至栈空,结论为字符序列是回文。在出栈元素与串中字符比较不等时,结论字符序列不是回文。

#include <stdio.h>
#include <string.h>
#include<stdlib.h>
typedef char ElemType;
typedef struct
{
	int stack_size;
	ElemType *top;
	ElemType *base;
}Stack;
enum Status{ERROR,OK};

InitStack(Stack &S,ElemType *t)  //初始化栈
{
	int len=strlen(t);
	S.base = (ElemType *)malloc(len * sizeof(ElemType));
	if (S.base == NULL)
		return ERROR;
	S.top = S.base;
	S.stack_size = len;
}

//入栈
Status Push(Stack &S,ElemType e)
{
	if(S.top-S.base==S.stack_size)
		return ERROR;
	*S.top++=e;
	return OK;
}

//出栈
Status Pop(Stack &S,ElemType &e)
{
	if(S.top==S.base)
		return ERROR;
	e=*--S.top;
	return OK;
}

//判空
int StackEmpty(Stack S)
{
	return (S.top==S.base);
}

Status IsPlalindrome(ElemType *t) //判断t[]是否为回文
{
  Stack S;
  ElemType e;
  int i , len;
  InitStack(S,t);
  len=strlen(t); //求数组长度
  for ( i=0; i<len/2; i++)//将一半字符入栈
    Push(S, t[i]);
  if(strlen(t)%2==1)
		i++;
  while( !StackEmpty(S))// 每弹出一个字符与相应字符比较
  {
    Pop (S,e);

    if( e!=t[i])
		return ERROR ;// 不等则返回0
    else  i++;
  }
  return OK ; // 比较完毕均相等
}

int main()
{
	int len=0;
	ElemType *a=NULL;
	printf("你要输入几个字符:");
	scanf("%d", &len);
	getchar();  //吃掉回车
	a = (ElemType *)malloc(len * sizeof(ElemType));
	printf("\n请输入待检测的字符串:");
	gets(a);

	if (IsPlalindrome(a))
		printf("\n是回文字符串!");
	else
		printf("\n不是回文字符串!");
	return 0;
}

数据结构(C语言第2版) 课后习题答案之 第三章 栈和队列 目录 第3章 栈和队列 1.选择题 (2)回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈) (3)设从键盘输入一整数的序列:a1, a2, a3,…,an,试编写算法实现:用栈结构存储输入的整数,当ai≠-1时,将ai进栈;当ai=-1时,输出栈顶整数并出栈。算法应对异常情况(入栈满等)给出相应的信息。 (4)从键盘上输入一个后缀表达式,试编写算法计算表达式的值。规定:逆波兰表达.. 阅读详情

相关推荐

我的老款Intel MacBook Pro,如何用OpenVINO把本地大模型推理速度提升10倍?

本文详细介绍了如何在老款Intel MacBook Pro上使用OpenVINO工具包将本地大模型推理速度提升10倍。通过对比Ollama CPU原生、Transformers原生和OpenVINO优化三种方案,展示了OpenVINO在性能优化上的显著优势,并提供了从环境配置到模型转换、性能调优的完整实战指南。

weixin_28694295的博客 303

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

需要注意的是,在使用 stack 类模板之前,你需要确保已经包含了相应的头文件,并且在代码中使用了正确的命名空间。通过引用 stack 头文件,你可以使用 stack 类模板来创建栈对象,并使用其中的函数和方法,例如 push()、pop()、top() 等。在 C++ 中,stack 是标准库中提供的一个头文件,其中定义了用于操作栈的类模板 stack。需要注意的是,在使用 stack 类模板时,你可以根据需要选择不同的数据类型来实例化模板,例如 int、char、std::string 等。

2301_80043971的博客 1247

第二章 零差云控关节模组内部构造

对零差云控的eRob70I进行了拆解

SFY__优快云的博客 5980

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

内容: 回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。编写一个程序,使用栈判定给定的字符序列是否为回文。 算法分析 将字符串前一半入栈,然后,栈中元素和字符串后一半进行比较。即将第一个出栈元素和后一半串中第一个字符比较,若相等,则再出栈一个元素与后一个字符比较,……,直至栈空,结论为字符序列是回文。在出栈元素与串中字符比较不等时,结论字符序列不是回文。 概要设计 函数 void In...

floruitshow的博客 6417

最新虚拟串口 Virtual Serial Port Driver V11.0.1068 已经汉化

Virtual Serial Port Driver 11.0.1047 是一款功能强大的虚拟串口驱动程序,专为需要在开发和测试环境中模拟物理串口连接的用户设计。该版本于2023年4月5日发布,主要修复了在导入无效的COM端口捆绑设置时导致的崩溃问题,并优化了软件的自动更新功能。通过使用Virtual Serial Port Driver,用户可以在不依赖物理硬件的情况下,轻松创建和管理虚拟串口,极大地提高了开发和测试的效率。

中游鱼的博客 3万+

Apple CarPlay Certification Guide December 2022 解析V1.0

Apple CarPlay Certification Guide December 2022更新说明

m0_74450450的博客 703

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

栈与队列习题:回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈) ```#include<stdio.h> //用了c++里的&和cin.getline(),所以得用.cpp 等运行成功之后看下换成指针试下 #include<string.h> //strlen #include<stdlib.h> //mallo

weixin_45644508的博客 1万+

DASH 流媒体协议(Dynamic Adaptive Streaming over HTTP)概述——起源、MPD文件解析、相关项目

简单介绍DASH的起源与发展、MPD文件简要解析、相关项目,以及常见流媒体协议的比较

farewellyi的博客 6888

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

1.题目描述 回文是指正读反读均相同的字符序列;如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符序列是否是回文。(提示:将一半字符入栈) 2.算法实现 #include<bits/stdc++.h> using namespace std; #define MAXSIZE 100 typedef struct { int *base; int *top; int stacksize; }SqStack;...

weixin_46803686的博客 7852

10、贝叶斯曲线拟合与预测分布详解

本文详细介绍了贝叶斯曲线拟合与预测分布的核心概念与计算方法。从最大似然估计出发,引入参数的先验分布,推导出后验分布与最大后验估计,并进一步展示如何通过积分获得完整的预测分布。文章解析了预测分布中均值与方差的构成,强调贝叶斯方法在量化不确定性方面的优势,涵盖金融、医疗、气象等实际应用场景。最后总结了操作步骤与未来研究方向,帮助读者系统掌握贝叶斯方法在回归问题中的应用。

android的专栏 106

【nnUNetv2进阶】四、nnUNetv2 魔改网络-小试牛刀-加入注意力机制ChannelAttention

本文介绍了在nnunet中加入ChannelAttention的方法,按照本文教的教程,可以快速完成ChannelAttention的加入和自定义模型的跑通。

AI爱好者的博客,分享计算机领域相关知识 5802

试写一个算法判定给定的字符序列是否为回文。(提示:将一半字符入栈)

/*数据结构与算法-第三章栈和队列课后习题 *课本第85页3.2 *题目:回文是指正读反读均相同的字符序列,如"abba"和"abdba"均是回文,但"good"不是回文。 * 试写一个算法判定给定的字符序列是否为回文。(提示:将一半字符入栈) *编译环境:VC 6.0 */ #include &lt;stdio.h&gt; #include &lt;string.h&gt; #inclu...

JxufeCarol的博客 1万+

手把手教你学Simulink--电机控制架构与算法实现​场景示例:基于Simulink的电机速度环PID调节仿真

本文带你完成了电机速度环PID参数的科学整定,实现了:✅ 理解了速度环的级联系统特性与关键参数影响工程整定法(理论初值)系统辨识法(参数未知时)✅ PID Tuner自动调参(推荐!自动调参兼具快速性与鲁棒性✅ 学会了前馈补偿抗饱和等工程实用技巧。

MHD0815的博客 653

栈、队列、数组-- 判断回文

7-1 判断回文回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个程序判定给定的字符向量是否为回文,用栈实现。

2401_84341430的博客 448

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

第三章栈和队列-作业题

第三章栈和队列-作业题1.栈和列队的基本概念6-1 使用栈完成回文判断 (12 分)6-2 判断表达式中括号是否匹配 (12 分)6-3 队列的操作集合(带尾指针的循环链表) (18 分)6-4 循环队列的操作集合(只设 rear和quelen) (18 分)6-5 循环队列的操作集合(增设tag) (18 分) 1.栈和列队的基本概念 2-1 若元素a,b,c,d,e,f依次进栈,允许进栈、退栈操作交替进行,但不允许连续三次进行退栈操作,则不可能得到的出栈序列是(D )。 (2分) A.d,c,e,b,f

weixin_52326703的博客 4950

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

第三章 栈和队列

算法设计题: (2)回文是指正读反读均相同的字符序列,如 “abba” 和 “abdba” 均是回文,但 “good” 不 是回文。试写一个算法判定给定的字符序列是否为回文。(提示:将 一 半字符入栈) #include <stdio.h> #include <string.h> #include <iostream> typedef struct SNode { char data; struct SNode *next; } SNode, *Link

weixin_44374594的博客 239

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

数据结构(c语言版 第2版)第3章栈和队列算法设计题(回文)

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

Xwylovexixi的博客 414

C语言!!能跑的!!!数据结构(C语言第2版) 课后习题答案之 第三章 栈和队列算法设计题C语言版

/栈顶和栈底指针//栈数组int m;//栈最大可容纳元素个数}DblStackint m;return 1;printf("栈号输入不对");return 0;printf("栈已满");return 0;break;printf("栈号输入错误");return 0;printf("栈号输入错误");return 0;printf("栈空");return 0;

picktheshy的博客 1246

数据结构--栈、队列练习题

数据结构–栈、队列作业 作业1: ​ 1.有五个元素,其入栈次序为:A,B,C,D,E,在各种可能的出栈序列中,以元素C、D最先出栈(即C第一个且D第二个出栈)的次序有哪些? ​ 2.铁路进行列车调度时,常把站台设计成栈式结构,试问: ​ (1) 设有编号为1,2,3,4,5,6的6辆列车,顺序开入栈式结构的站台,则可能的出栈序列有多少种? ​ (2)若进站的6辆列车顺序如上所述,那么是否能够得到435612、326541、154623和135426的出站序列?如果不能,说明为什么不能;如果能,说明如何得到

丹丹的后花园 2315

严魏敏-习题-栈和队列-03

时间复杂度

自学记录 777

7-1回文判断(栈和队列PTA)

回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。编写一个程序,使用栈判定给定的字符序列是否为回文。 若用C++,可借助STL的容器实现。

etamaos的博客 1262

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

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

m0_70061356的博客 545

c语言设计一个算法 通过一趟遍历确定长度,数据结构(c语言)课后习题答案完整版.doc...

数据结构(c语言)课后习题答案完整版第1章 绪论5.选择题:CCBDCA6.试分析下面各程序段的时间复杂度。(1)O(1)(2)O(m*n)(3)O(n2)(4)O(log3n)(5)因为x++共执行了n-1+n-2+……+1= n(n-1)/2,所以执行时间为O(n2)(6)O()第2章 线性表1.选择题babadbcabdcddac2.算法设计题(6)设计一个算法,通过一趟遍历在单链表中确...

weixin_35190276的博客 1370

第三章 栈和队列【数据结构与算法】

第三章 栈和队列(数据结构与算法)

小心星的博客 3876

【计算机考研数据结构代码题总结】栈和队列

1.回文是指正读反读均相同的字符序列,如“ “abba” ” 和“ “abdba” ” 均是回文,但“ “good” ” 不是回文。试写一个算法判断给定字符序列是否是回文。(提示:将一半字符入栈。) int isPalindrome(char *t) { InitStack(S); len = strlen(t); //求字符串长度 for(int i = 0; i<len/2; i++) //将一半字符入串 Push(S,t[i]); if(len%2 != 0) i+

qq_43506256的博客 1720

判断回文数(较麻烦)(c++/数据结构/栈/队列)

题目:回文是指正读反读均相同的字符序列,如“abba”、“abdba”均是回文,但“good”不是回文。 思想:字符数为偶数时,前半部分入栈,后半部分入队;字符为奇数时,用getchar接收中间的字符,其余的按偶数处理。 代码如下: #include&lt;iostream&gt; #define MaxSize 100 #define OK 1 #define ERROR 0 using...

sakura的博客 1943
上一篇: 类C语言---线性表例题:删除递增有序链表中值大于mink且小于maxk的所有元素(mink和maxk是给定的两个参数,其值可以和表中的元素相同,也可以不同 )。
下一篇: 类C语言--栈与队列习题:设从键盘输入一整数的序列:a1, a2, a3,…,an,试编写算法实现:用栈结构存储输入的整数,当ai≠-1时,将ai进栈;当ai=-1时,输出栈顶整数并出栈。算法应对异常
幻夜- D
博客等级 码龄7年 196粉丝 120原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值