问答题
下列是判断是否为回文(顺读与逆读字符串一样,串中不含空格)的算法。
#include
#include
#include
#define StackSize 100 //定义栈类型
typedef struct{char data[StackSize];int Top ;)SeqStack;
char Str[100]=“madamimadam”;
void Push(SeqStack*s,char x) //进栈
(if(S一>Top=:stacksize一1)printf(”Stack overflow”);
(1) ; )
char Pop(SegStack*s) //出栈
{if,(S一>Top==一1)printf(”Stack underflow”);
return (2) ;}
int IsHuiwen(char*S)
{SeqStack T; int i,n;char tl;
T.Top=一1; n=strlen(s); //求向量长度
for(i=0;i=0)
{tl= (3) ; //每弹出一个字符与相应字符作比较
if( (4) ) return 0; //不相等则返回0
i一一;
}
return 1;1 //比较完毕均相等则返回1
void main()
{if(IsHuiwen(Str))printf(“\n这个字符串是回文。”);
else printf(“\n这个字符串不是回文。”);
}
【北京交通大学2006七、2(8分)】
【正确答案】正确答案:(1)S一>data[++s一>Top]=x (2)S一>data Is一>Top一一] (3)S[i] (4)s[i]!=T[i]
【答案解析】