正在加载图片...
ELSE[new(s);s↑.data:=b;s↑.next:=p↑.next;p↑.next:=s;] ENDP;{ins- linklist}【燕山大学1998四、1(15分)】 24.已知双链表中结点的类型定义为: TYpE pointer= list list=RECORD data: integer: left, right: dpo 如下过程将在双链表第i个结点(i>=0)之后插入一个元素为x的结点,请在答案栏给出题 目中 处应填入的语句或表达式,使之可以实现上述功能。 PROCEDURE insert(VAR head: pointer: i, x:integer) new(s): s. data:=x IF(i=0) THEN BEGIN S. right:=head;()head:=sEND{如果i=0,则将s结点插 入到表头后返回} ELSE BEGIN p:=head;(2):{在双链表中查找第i个结点,由p所指向 WHILe ((pONIL) AND (j<i)) DO bEGin j: =j+1: (3) END IF PONIL THEN IF (p. right=NIL) THEN BEGIN p. right: =s:s. right: =NIL;(4) END ELSE BEGIN S. right: =p. right: (5):p. right: =s:(6) END ELSE writeln('can not find node END;【厦门大学2002二(12分)】 25.阅读以下算法,填充空格,使其成为完整的算法。其功能是在一个非递减的顺序存储线 性表中,删除所有值相等的多余元素。 CONST maxlen=30 TYPE sqlisttp=RECORD elem: ARRAY[l. maxlen] OF integer last: 0.. maxlen PROC exam21(VAR L: sqlisttp WHILE (1) IF L elem[i]<>L elem [j] THEN (3)] +1 ENDP;【同济大学2000二、1(10分)】 26.在本题的程序中,函数过程 Create_link_list(m)建立一个具有n个结点的环形链表 程序过程 josephus(n,i,m)对由 Create_ link list(n)所建立的具有n个结点的环形链表按 定的次序逐个输出并删除链表中的所有结点,参数n(n>0)指明环形链表的结点个数,参 数i(1<=i<=n)指明起始结点,参数m(m>0)是步长,指明从起始结点或前次被删除并输出 的结点之后的第m个结点作为本次被输出并删除的结点。例如,对于下图中具有6个结点的 环形链表,在调用 josephus(6,3,2)后,将输出5,1,3,6,4,2请在横线处填上适当内容,ELSE [new(s) ; s↑.data:=b; s↑.next:=p↑.next; p↑.next:=s;] ENDP;{ins-linklist}【燕山大学 1998 四、1(15 分)】 24. 已知双链表中结点的类型定义为: TYPE dpointer=^list; list=RECORD data:integer; left,right:dpointer; END; 如下过程将在双链表第 i 个结点(i>=0)之后插入一个元素为 x 的结点,请在答案栏给出题 目中______处应填入的语句或表达式,使之可以实现上述功能。 PROCEDURE insert(VAR head:dpointer;i,x:integer); VAR s,p:dpointer; j: integer; BEGIN new(s); s^.data:=x; IF(i=0)THEN BEGIN s^.right:=head; (1)___ head:=s END{如果 i=0,则将 s 结点插 入到表头后返回} ELSE BEGIN p:=head; (2)_______;{在双链表中查找第 i 个结点,由 p 所指向} WHILE ((p<>NIL) AND (j<i)) DO BEGIN j:=j+1; (3) _ END; IF p<>NIL THEN IF (p^.right=NIL) THEN BEGIN p^.right:=s; s^.right:=NIL; (4) __END ELSE BEGIN s^.right:=p^.right; (5) _;p^.right:=s; (6) END ELSE writeln(‘can not find node!’) END END;【厦门大学 2002 二 (12 分)】 25.阅读以下算法,填充空格,使其成为完整的算法。其功能是在一个非递减的顺序存储线 性表中,删除所有值相等的多余元素。 CONST maxlen=30 TYPE sqlisttp=RECORD elem:ARRAY[1..maxlen] OF integer; last:0..maxlen END; PROC exam21(VAR L:sqlisttp); j:=1; i:=2; WHILE (1)______ DO [ IF L.elem[i]<>L.elem[j] THEN [ (2)_______; (3)______]; i:=i+1 ] (4) ________; ENDP;【同济大学 2000 二、1 (10 分)】 26.在本题的程序中,函数过程 Create_link_list(n)建立一个具有 n 个结点的环形链表; 程序过程 josephus(n,i,m)对由 Create_link_list(n)所建立的具有 n 个结点的环形链表按 一定的次序逐个输出并删除链表中的所有结点,参数 n(n>0)指明环形链表的结点个数,参 数 i(1<=i<=n)指明起始结点,参数 m (m>0)是步长,指明从起始结点或前次被删除并输出 的结点之后的第 m 个结点作为本次被输出并删除的结点。例如,对于下图中具有 6 个结点的 环形链表,在调用 josephus(6,3,2)后,将输出 5,1,3,6,4,2 请在横线处填上适当内容
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有