填空题
[说明]
若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;
{{U}} (1) {{/U}};
q=T;
while ({{U}} (2) {{/U}})
{//取S中结点字符
while({{U}} (3) {{/U}})//进行字符比较
q=q->next;
if(q==NULL) return {{U}}(4) {{/U}};//找到并返回字符值
q=T;//指针恢复串T的开始结点
({{U}} (5) {{/U}});
}
printf("there's no such character.");
return NULL:
}
【正确答案】
1、(1)p=S (2)p (3)q&&p->data!=q->data (4)p->data (5)p=p->next
【答案解析】