文章

26

粉丝

253

获赞

1

访问

15.2k

头像
2012年计算机学科专业基础综合试题 - 第42题回答
数据结构
发布于2025年10月23日 18:23
阅读数 32

 1.    1.设置一个快慢指针 用来遍历较长的链表 和一个普通指针遍历较短的链表 

          2.设置一个count用来计录当前的位置 

             3.循环遍历两个链表 

2. 

#include<stdio.h>


void fun(List *str1 ,List *str2 ){
	List *p=str1;
	List *q=p->next;
	List *L=str2->next;
	int count=0;
	while(q!=NULL&&L!=NULL){
		if(p->data!=L->data&&L->data!=q->data){
			p=p->next;
			q=q->next;
			L=L->next; 
			count ++;
		} else if(L->data==q->data){
			printf("%d",count);
			break;
		}else if(q->data==L->data){
			printf("str1的起始位置是 %d  str2的起始位置是",count++,count);
			 
			 break;
		}
		
		
		
		
	}
	
	
	
	
	
	
} 

3 O(n)


评分及理由

(1)得分及理由(满分4分)

得分:1分

理由:学生的基本设计思想描述非常模糊,只提到了使用快慢指针和普通指针,但没有说明如何确定链表长度差异以及如何对齐链表。没有清晰表达出通过计算链表长度差来同步遍历的核心思想。但提到了遍历两个链表,部分涉及了算法思路,因此给1分。

(2)得分及理由(满分8分)

得分:2分

理由:代码存在多处严重问题:
1. 函数参数类型不明确,List未定义
2. 算法逻辑错误:没有先计算链表长度差,直接同步遍历无...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发