其他分享
首页 > 其他分享> > 2021.2.1408数据结构每日一题

2021.2.1408数据结构每日一题

作者:互联网

在这里插入图片描述
法一(暴扫)(嵌套循环)

Lisklist search(Lisklist str1,Lisklist str2)
{
p=str1->next,q=str2->next;
while(p){

	p=p->next;
	while(q){
		if(q->data==p->data)return q;
		q=q->next;
	}
	q=str2->next;
}
if(!p)return 0;
}

法二(时间复杂度很小只需要遍历一次)

int lengthlist(Lisklist str)
{
	Lisklist p=str->next;
	int count=1;
	while(p){
		count++;
		p=p->next;
	}
	return count;
}
Lisklist searchlist(Lisklist str1,Lisklist str2)
{
	int k;
	Lisklist p,q;
	if(lengthlist(str1)<lengthlist(str2))k=lengthlist(str2)-lengthlist(str1);
	 for(q=str2->next;k>0;k--)
	 q=q->next;
	 else{
	 	for(p=str1->next;k>0;k--)
	 	p=p->next;
	 }
	 while(p&&q){
	 	if(p->data==q->data)return q;
	 	else{
	 		p=p->next;
	 		q=q->next;
		 }
	 }
	 if(p==NULL||q===NULL)return NULL;
	
	 
}

标签:2021.2,return,1408,str2,str1,next,Lisklist,数据结构,data
来源: https://blog.csdn.net/weixin_54793519/article/details/113794056