【正确答案】#include”stdio.h”
#include”malloc.h”
#include”string.h”
#defingemax 100
{
Chardata;
Structnode*next;
}LinkList;
/*根据输入的字符(存储在字符数组中)建立一个单链表,newNode始终指向新的结点*/
LinkList*create(chars[])
{
LinkList*head,*newNode,*tail;
For(inti=0;s!=’/0’’;i++)
{
newNode=(LinkList*)①
newNodeadata=②
newNodean3ext=NULL;
/*i=-0表示只输入了一个字符*/
If(i==0)
{
head=newNode;
tail=head;
}
else
{taolanext=newNode;
tail=③
}
}
Returnhead;
}
/*定义栈的存储类型,栈指针是base和top*/
Typedefstruct
{
Char*base;
Char*top;
}stack;
voidInitStack(stack&&)
{
s.base=(char*)malloc(max*sizeof(char));
s.top=④;
}
voidpush(stack&s,chare)
{
⑤
}
Chartop(stack&s,char&e)
{
⑥
returne;
}
/*判断以单链表存储的字符串是否对称的函数*/
Intjukdge(LinkList*head)
{
Stacks;
Chare;
InitStack(s);
LinkList*p=heada;
While(p!=NULL)
{
⑦;
P=panext;
}
P=head;
While(padata==⑧)
P=panext;
Else
Break;
}
If(⑨)
Return1;
Else
teturn0;
}
Voidmain()
{
Charstr[max];
While(1)
{
printf(“/n/n请输入字符串:“);
gets(str);
switch(⑩)
{
Case1:
printf(“/n%/S是中心对称字符串/n”,str);
Break;
Case0:
prinft(“/n%S不是中心对称字符串/n”,str);
Break;
【答案解析】