C 看看L1是不是L2的子链
//结构体
typedef struct Node {
ElementType data;
struct Node * next;
} LNode, * LinkNode;
//看看L1是不是L2的一个子串
Status isChildStr(LinkNode L1, LinkNode L2){
//L2出个前驱和当前,L1出个当前
LinkNode nodel1 = L1->next;
LinkNode prenodel2 = L2;
LinkNode nodel2 = prenodel2->next;
//L2和L1的当前一起判断,有一个少都不行
while (nodel1 && nodel2) {
//相等的话就并驾齐驱往前走
if(nodel1->data == nodel2->data){
nodel1 = nodel1->next;
nodel2 = nodel2->next;
}
//不相同的话,L1变成原来的样子,L2往后走一个
else
{
//L2
prenodel2 = prenodel2->next;
nodel2 = prenodel2->next;
//L1
nodel1 = L1->next;
}
}
//看看L1是不是走到了最后
if(nodel1){
return ERR;
}
//完美地避免了条件的制约,那就是?的
return OK;
}
本文来自博客园,作者:赫凯,转载请注明原文链接:https://www.cnblogs.com/heKaiii/p/15491257.html

浙公网安备 33010602011771号