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;
	
	 
}
上一篇:前端笔记知识点整合之JavaScript(七)深入函数&DOM那点事


下一篇:L1-003 个位数统计 (15 分)