题目:
   设单链表中存放n个字符,试编制一个程序,使用栈
判断该字符串是否中心对称,如xyzzyx为中心对称
字符串.
   提示:先使用create()函数从用户输入的字符串创
建相应的单链表,然后调用judge()函数判断是否为中
心对称字符串.在judge()中先将字符串进栈,然后将栈
中的字符逐个与单链表中的字符进行比较. 
程序为:#include"stdio.h"
#include"stdlib.h"
#define LIST_INIT_SIZE 10
#define LISTINCREMENT 10
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
#define OK 1
#define ERROR 0
#define OVERFLOW  -2
typedef char ElemType;
typedef char SElemType;
typedef int Status;
typedef struct LNode{
 ElemType data;
 struct LNode *next;
}LNode,*LinkList;
typedef struct SqStack{
 SElemType *base;
 SElemType *top;
 int stacksize;
}SqStack;
Status GetElem_L(LinkList L,int i,ElemType &e){
 int j;
 LinkList p;
 p=L->next; j=1;
 while(p&&j<i){
  p=p->next; ++j;
 }
 if(!p||j>i) return ERROR;
 e=p->data;
 return OK;
}
Status CreateList_L(LinkList &L){
 LinkList p;
 int i,n;
 printf("请输入字符串的个数:");
 scanf("%d",&n);
 L=(LinkList)malloc(sizeof(LNode));
 L->next=NULL;
 for(i=n;i>0;--i){
  p=(LinkList)malloc(sizeof(LNode));
        printf("输入第""%d""个字符:",i);
  scanf("%s",&p->data);
  printf("\n");
  p->next=L->next; L->next=p;
 }
 return OK;
}
int ListLength_L(LinkList L){
 int i=0;
 LinkList p;
 p=L->next;
 while(p!=NULL) {p=p->next; i++;}
 return i;
}
Status InitStack(SqStack &S){
 S.base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(ElemType));
 if(!S.base)exit(OVERFLOW);
 S.top=S.base;
 S.stacksize=STACK_INIT_SIZE;
 return OK;
}
Status Push(SqStack&S,SElemType e){
 if(S.top-S.base>=S.stacksize){
  S.base=(ElemType*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(ElemType));
  if(!S.base)exit(OVERFLOW);
  S.top=S.base+S.stacksize;
  S.stacksize+=STACKINCREMENT;
 }
 *S.top++=e;
 return OK;
}
Status Pop(SqStack&S,SElemType&e){
 if(S.top==S.base)return ERROR;
 e=*--S.top;
 return OK;
}
Status judge(int n){
 int m=n,i;
 char e,d;
 LinkList head;
 SqStack S;
 for(i=1;i<=m;++i){
  GetElem_L(head,i,e);
  Push(S,e);
 }
 for(i=1;i<=m;++i){
  GetElem_L(head,i,e);
  Pop(S,d);
  if(e!=d){
   printf("%s""输入的字符串不中心对称");
   break;
  }
  if(i==m-1&&e==d) printf("%s""输入的字符串中心对称");
 }
 return OK;
}
void main(){
 int n;
 LinkList L;
 SqStack C;
 InitStack(C);
 CreateList_L(L);
    n=ListLength_L(L);
 judge(n);
} 
调试时没有错误和警告但有“遇到问题需要关闭”的画面出现,经测试不是VC软件的问题,希望大家帮帮忙,解决这个问题!

 
											





 
	    



