设单链表的表头指针为h,结点结构由data和next两个域构成,其中data域为字符型。写出算法dc(h,n),判断该链表的前n个字符是否中心对称#include#includetypedef 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;idata;p=p->next;}s='\0';j=i-1;if(n%2==1){p=p->next;}for(i=j;i>0;i--){if(p->data==s){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;} |