Q:判断一字符串是否为回文
A:对于这种要求输入和输出相反的情况,一般采用栈来解决,对于此题,只需将正序的字符串压栈再将其全部弹出栈,判断是否相同即可,代码如下:
#include<stdio.h>
#include<stdlib.h>
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define MAXSIZE 100
typedef int status;
typedef char elemtype;
typedef struct stack{
elemtype ch[MAXSIZE];
int top;
}stack;
status visit(elemtype c){
printf("%c ",c);
}
status initstack(stack *S){
S->top=-1;
}
status stacklength(stack *S){
return S->top+1;
}
status push(stack *S,elemtype data){
S->top++;
S->ch[S->top]=data;
}
status pop(stack *S,elemtype data){
data=S->ch[S->top];
S->top--;
}
status createstack(stack *S,elemtype start,elemtype end){
int i=0;
for(i=start;i<end;i++){
S->top++;
S->ch[S->to