数据结构 实验三 栈的实现
第三题
【问题描述】编写一个程序,判断一个字符串是否为“回文”(顺读和倒读都一样的字符串称为“回文”)。
【输入形式】长度小于100的任意字符串
【输出形式】字符串xxxx…xxxxx(不)是回文
【样例输入】abcdcba
【样例输出】yes
出现的问题:
1.编程时太马虎,竟然定义char元素类型后,在结点类型中使用了int型,导致怎么调试都不出来。
2.输入函数部分:gets()真香,垃圾getchar()。
3.判断回文函数judge()中:
(1)在将栈中元素反向存入字符型数组中时,应该先–temp -> top,之后再循环中赋值,最后要再一次赋值,不然temp -> base元素不能输入。
(2)在使用Pop()与字符型数组比较时,应该先做++temp_2 -> top操作(取决于你的Pop()算法是什么样的),不然只能得出错误结果。
#include <stdio.h>
#include <stdlib.h>
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR -1
#define OVERFLOW -2
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
typedef char Chartype;
typedef struct
{
Chartype *top;