最新版数据结构1800题含完整答案详解

内容发布更新时间 : 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; </

>>展开全文<<
12@gma联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4 ceshi