不明白错在哪里?输出字符串结果是个“?”求解

设单链表的表头指针为h,结点结构由data和next两个域构成,其中data域为字符型。写出算法dc(h,n),判断该链表的前n个字符是否中心对称 #include<stdio.h> #include<stdlib.h> typedef struct node{ char data; struct node *next; }LinkNode,*LinkList; LinkList initList(); LinkList createList(LinkList h); int dc(LinkList h,int n); void main() { int n,a; scanf("%d",&n); LinkList h; h=initList(); createList(h); a=dc(h,n); if(a==0) printf("No"); if(a==1) printf("Yes"); } int dc(LinkList h,int n) { LinkList p; char s[10]; int i=1; int j; p=h->next; for(i=1;i<=n/2;i++) { s[i]=p->data; p=p->next; } s[i]='\0'; j=i-1; if(n%2==1) { p=p->next; } for(i=j;i>0;i--) { if(p->data==s[i]) { p=p->next; } else break; } if(i!=0) { return 0; } else { return 1; } } LinkList initList() { LinkList p; p=(LinkList)malloc(sizeof(LinkNode)); p->next=NULL; return p; } LinkList createList(LinkList h) { LinkList p,rear; char a; a='0'; rear=h; /*增加尾指针*/ while(a!=' ') { scanf("%c",&a); p=(LinkList)malloc(sizeof(LinkNode)); p->data=a; p->next=rear->next; rear->next=p; rear=p; /* 尾插结点*/ } return h; }
ppgn
浏览 1115回答 0
0回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

数据结构