内容发布更新时间 : 2025/7/12 21:14:12星期一 下面是文章的全部内容请认真阅读。
【中国人民大学 2001 二、4 (2分)】
11. 下面是一算法的核心部分,试说明该算法的功能。
pre:=L↑.next;
{L是一单链表,结点有数据域 data和指针域 next} IF pre<>NIL THEN
WHILE pre↑.next<>NIL DO
BEGIN p:=pre↑.next; IF p↑.data>=pre↑.data THEN pre:=p ELSE
return(false) END;
return(true); 【燕山大学 2000 七、1 (7分)】
12. 设单链表结点指针域为next,试写出删除链表中指针p所指结点的直接后继的C语言语句。
【北京科技大学 2000 一、3】
13. 设单链表中某指针p所指结点(即p结点)的数据域为data,链指针域为next,请写出在p结点之前插入s结点的操作(PASCAL语句)。【北京科技大学 1999 一、2 (2分)】 14. 有线性表(a1,a2,?,an),采用单链表存储,头指针为H,每个结点中存放线性表中一个元素,现查找某个元素值等于X的结点。分别写出下面三种情况的查找语句。要求时间尽量少。
(1)线性表中元素无序。(2)线性表中元素按递增有序。 (3)线性表中元素按递减有序。
【北京邮电大学 1994 七 (7分)】
15.设pa,pb分别指向两个带头结点的有序(从小到大)单链表。仔细阅读如下的程序,并回答问题:
(1) 程序的功能。(2) s1,s2中值的含义。(3) pa,pb中值的含义。 PROCEDURE exam(pa,pb) BEGIN
p1:=pa↑.next; p2:=pb↑.next; pa↑.next:=∧; s1:=0; s2:=0; WHILE p1≠∧ AND p2≠∧ DO
[ CASE p1↑.data
dispose(p) ];
p1↑.data>p2↑.data: p2:=p2↑.next;
p1↑.data=p2↑.data: [p:=p1; p1:=p1↑.next; p↑.next:= pa↑.next;
pa↑.next:= p; p2:= p2↑.next;s1:=s1+1; ];
END ];
WHILE p1≠∧ DO [ p:=p1; p1:=p1↑.next; dispose(p); s2:=s2+1 ] END;【南京航空航天大学 1995 十 (9分)】
16.写出下图双链表中对换值为23和15的两个结点相互位置时修改指针的有关语句。
结点结构为:(llink,data,rlink) 【北京邮电大学 1992 三、4 (25/4分)】
17.按照下列题目中的算法功能说明,将算法描述片段中的错误改正过来。
(1) (4分)下面的算法描述片段用于在双链表中删除指针变量p所指的结点:
p^.rlink←p^.llink^.rlink;
p^.llink←p.^rlink^.llink dispose(p);
(2) (6分)下面的算法描述片段用于在双链表中指针变量p所指结点后插入一个新结点:
new(q);
q^.llink←p; p^.rlink←q;
q^.rlink←p^.rlink; </