已知一个单向链表结点的数据结构定义如下:struct node{char data;struct node *next;};函数struct node *cre (char *s)的功能是:根据s指向的字符串建立一个结点类型为struct node头指针为h的单向链表,使h链表中各结点的数据域分别存储s指向字符串中所有大写字母的编码,函数返回h链表首结点的地址.例如,若s指向的字符串为"3Aa26Bx5Y9",则h指向的链表如下图所示。 #include #include struct node{char data;struct node *next;};struct node *cre(char *s){struct node *p,*p1,*h;if (___(27)___) return NULL;h=p1=p=(struct node *)malloc(sizeof(struct node)) ;p->data=*s ;s++;while (*s){ if(*s>=’A’ && *s<=’Z’) { p= (struct node *) malloc (sizeof (struct node)) ; p->data=*s ; ___(28)____ = p; p1=p ; } s++;}___ (29)___ =NULL;___(30)___;}void print(struct node *h) {struct node *p=h;while (p!=NULL){ printf ("%3c", p->data) ;p=p->next ;}printf ("\n") ;}int main() {struct node *head=NULL;char *p=”3Aa26Bx5Y9";head=cre (p) ;print (head) ;return 0;}
参考答案:(27)*s==’\0’或 *s==0 或!*s (28) p1 -> next (29) p1 -> next或 p -> next (30) return h