数据结构上机题 判断回文对称
#include "stdio.h" #include"malloc.h" #define max 10 typedef struct sn{ char data; struct sn*next; }node; int panduan(node *head,int n) { char a[max]; int top=0; node *p; p=head->next; while (topdata; top++; p=p->next; } top--; if(n%2==1) p=p->next; while(top>=0) { if(a[top]!=p->data ) return 0; top--; p=p->next; } return 1; } int push(node *head,char *s) { int i; node *p,*q; p=head; for(i=0;s[i]!='\0';i++) { q=(node*)malloc(sizeof(node)); q->data=s[i]; q->next=0; p->next=q; p=q; } return(i); } void main() { char s[max]; node *head; int i; printf("请输入一组字符序列(最多字数:%d)",max); scanf("%s",s); head=(node*)malloc(sizeof(node)); i=push(head,s); if(panduan(head,i)) printf("该字符序列中心对称\n"); else printf("该字符序列不是中心对称\n"); }
用户评论