问题
填空题
[说明] 若S和T是用结点大小为1的单链表存储的两个串,试设计一个算法找出S中第一个不在T中出现的字符。查找过程是这样的,取S中的一个字符(结点),然后和T中所有的字符一一比较,直到比完仍没有相同的字符时,查找过程结束,否则再取S中下一个字符,重新进行上述过程。[函数] typedef struct node {char data; struct node *next; }LinkStrNode; //结点类型typedef LinkStrNode *LinkString; //LinkString 为链串类型 LifikString S; //S 是链串的头指针 char SearchNoin ( LinkString S, LinkString T ) {//查找不在T中出现的字符 LinkStrNode *p, *q; (1) ; q=T; while ( (2) ) {//取S中结点字符 while( (3) )//进行字符比较 q=q->next; if(q==NULL) return (4) ;//找到并返回字符值 q=T;//指针恢复串T的开始结点 ( (5) ); } printf("there’s no such character."); return NULL:}
答案
参考答案:(1)p=S (2)p (3)q&&p->data!=q->data (4)p->data (5)p=p->next