实验内容:
数据结构-用C语言描述(耿国华)P111实习题1
回文判断。
称正读与反读都相同的字符序列为“回文”序列。
试写一个算法,判断依次读入的一个以@为结束符的字母序列,是否为形如“序列1&序列2”模式的字符序列。其中序列1和序列2中都不含字符“&”,且序列2时序列1的逆序列。例如,“a+b&b+a”是属于该模式的字符序列,而“1+3&3-1”则不是。

#include <stdio.h>         //头文件
#define TRUE 1          //对TRUE与FALSE进行宏定义
#define FALSE 0/*定义栈Stack用作存放输入的字符*/
typedef struct{ char elem[100]; int top;
}Stack;/*预处理指令:初始化栈、入栈、出栈、判断栈是否为空*/
void InitStack(Stack *s);
int Push(Stack *s,char e);
int Pop(Stack *s,char *x);
int IsEmpty(Stack *s);/*主函数*/
int main(){ Stack s;                                //定义存放输入字符栈的栈s char ch;                             //定义输入的字符为ch char temp;                         //当字符从栈中弹出时,使用temp暂存 InitStack(&s);                          //初始化栈s printf("\n请输入以@为结尾的字符序列:");       //提示用户输入字符序列 ch=getchar();                             //getchar单个输入字符 //当ch不为字符&时,压入栈s,循环输入字符while(ch!='&'){ Push(&s,ch); ch=getchar(); } /*当ch不为字符@并且栈s不为空时,将&后输入的字符与之前压入栈中的字符依次循环判断是否对应相等*/ do{ ch=getchar();                        //得到&后输入的字符 Pop(&s,&temp);                       //将&之前压入栈s的字符出栈/*如果&后新输入的字符与栈s弹出的字符不依次对应相等,输出序列1与序列2不相同,返回FALSE*/ if(ch!=temp){printf("\n序列1与序列2不相同"); return(FALSE);}}while(ch!='@' && !IsEmpty(&s)); ch=getchar();
/*当栈为空时并且输入的下一个字符为@时,说明序列1与序列2相同,反之不同*/if(ch=='@' && IsEmpty(&s)){ printf("\n序列1与序列2相同");return(TRUE);}else{ printf("\n序列1与序列2不相同"); return(FALSE); }
}/*初始化栈*/
void InitStack(Stack *s){ s->top=-1;
}/*入栈*/
int Push(Stack *s,char e){ if(s->top!=99){ (s->top)++; s->elem[s->top]=e;
}else return (FALSE);
}/*出栈*/
int Pop(Stack *s,char *x){ if(s->top!=-1){ *x=s->elem[s->top]; s->top--;return(TRUE); }else return(FALSE);
}
/*判断栈是否为空*/
int IsEmpty(Stack *s){if(s->top==-1) return(TRUE); return(FALSE);
}

学习感悟:
1.一开始的设置
Stack *s;
char *temp;
后面的引用相应改变,但是只能在手机上运行,无法在电脑上运行,于是一直在debug,最后改成了
Stack s;
char tempt;
后面相应使用&进行引用,但是不太清楚为什么,如果有知道同学可以告诉我一下,谢谢您!!!

专业课-数据结构(回文判断实验)相关推荐

  1. 数据结构:使用链栈实现回文判断

    题目: 回文判断 试写一个算法,判断依次读入的一个以@为结束符的字母序列,是否为形如'序列1&序列2'模式的字符序列.其中序列1和序列2中都不含字符'&',且序列2是序列1的逆序列.例 ...

  2. java栈和队列验证回文串_栈和队列的基本操作及其应用(回文判断)

    实验二栈和队列的基本操作及其应用 一.实验目的 1.掌握栈和队列的顺序存储结构和链式存储结构,以便在实际中灵活应用. 2.掌握栈和队列的特点,即后进先出和先进先出的原则. 3.掌握栈和队列的基本运算, ...

  3. 回文判断 【问题描述】 回文是正读和倒读都一样的句子。读入一个最大长度不超过50个字符的句子,判断其是否是回文。 【输入形式】 输入一个最大长度不超过50个字符的句子 【输出形式】 Yes/No

    回文判断 [问题描述] 回文是正读和倒读都一样的句子.读入一个最大长度不超过50个字符的句子,判断其是否是回文. [输入形式] 输入一个最大长度不超过50个字符的句子 [输出形式] Yes/No [输 ...

  4. java判断回文用valueof_回文判断 - 平行宇宙 - ITeye博客

    回文 把相同的词汇或句子,在下文中调换位置或颠倒过来,产生首尾回环的情趣,叫做回文,也叫回环. 锦字回文 前秦时期,秦州刺史窦滔因得罪了苻坚的手下大官被流放到流沙县.夫妻天各一方,他的妻子苏蕙特地在一 ...

  5. java基本语句回文数实验_实验二 java基本数据类型与把持语句.doc

    实验二 java基本数据类型与把持语句.doc 还剩 4页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 5System.out.println(num ...

  6. java的回文是什么_Java实现回文判断

    1 问题描述 给定一个字符串,如何判断这个字符串是否是回文串? 所谓回文串,是指正读和反读都一样的字符串,如madam.我爱我等. 2 解决方案 解决上述问题,有两种方法可供参考: (1)从字符串两头 ...

  7. 回文判断--链表实现

    1.问题 回文是从前面到后面或从后面到前面逐个字母地读,都是一样得单词或短语.例如,"reviver"和"Able was I ere I saw Elba"都 ...

  8. 回文判断(栈+队列)

    我们把正读和反读都相同的字符序列称为"回文",例如abba和abcba是回文,abcde不是回文.尝试写一个算法判别读入的一个以@为结束符的字符是否是回文. 输入格式 输入为一行, ...

  9. Python回文判断代码优化与6个思考题

    送个福利:清华大学出版社和新宝图书专营店联合推出正版特价图书<Python程序设计开发宝典>,原价69元,特价47.6元,详情:https://detail.tmall.com/item. ...

最新文章

  1. 学习opengl入门
  2. 蓝牙BLE LINK LAYER剖析(二) -- PDU
  3. 阿里技术嘉年华-aDev内容感悟
  4. 【CyberSecurityLearning 58】PHP代码注入
  5. Hadoop hdfs 使用流来上传文件代码示例
  6. 解决numpy报错UFuncTypeError: Cannot cast ufunc ‘add‘ output from dtype(‘x‘) to dtype(‘x‘)
  7. iOS 10.3下解决Fiddler代理抓包ssl证书信任问题
  8. GetUserName()第二个参数中指明缓冲区长度
  9. Oracle高级教程
  10. cmder添加到系统变量中_Cmder配置
  11. linux时间转excel,linux时间戳转换【操作模式】
  12. linux三星电脑开机怎么进入页面,三星Samsung笔记本怎么开机进入BIOS
  13. 关于“强化学习 策略梯度方法 方差大 的原因与解决方法”问题的思考
  14. Git创建版本库及git init 、add 和 commit -m 的基本使用
  15. JAVA8新特性的StreamAPI 遇到的问题stream has already been operated upon or closed
  16. PT100温度传感器的工作原理
  17. 网络变压器、网络通讯用磁性器件的要求和发展趋势
  18. 最优化方法:非线性方程的求极值方法
  19. 【R语言】使用nnet过程中报错Error in eval(predvars, data, env) : object ‘naulong‘ not found
  20. python 的循环嵌套

热门文章

  1. postgresql索引_PostgreSQL中的索引— 6(SP-GiST)
  2. windows11终端设置字体
  3. WIN32编程经验总结
  4. C++ 函数模板 懒人必备!
  5. Flask - 闪现
  6. 基于SDN/NFV的卫星互联网服务功能资源分配研究
  7. 查询oracle rac实例名,Oracle Rac 常用命令
  8. 全面解析视频编解码:原理、策略、实现
  9. SR-TE、SR-BE原理
  10. 惯性思维与创新发现的矛盾