假设 p和q中的结点值都是整数,且按结点值的递增次序链接起来的带表头结点的环形。各的表头结点的值为max,且中其他结点的值都小于max,在取max为9999。在各个中,每个结点的值各不相同,但p和q可能有值相同的结点(表头结点除外)。下面的程序将q合并到p中,使得合并后的是按结点值递增次序链接起来的带表头结点的环形,且中各个结点的值各不相同。请在划线处填上适当内容,每个框只填一个语句或一个表达式,的结点类型如下 TYPE nodeptr=^nodetype; nodetype=RECORD data:integer; link:nodeptr; END; CONST max=9999; PROCEDURE merge(VAR p:nodeptr;q:nodeptr); VAR r,s: nodeptr; BEGIN r:=p; WHILE (A)___ DO BEGIN WHILE r^.link^.data
q^.link^.data THEN BEGIN s:= (C)_; (D)_: =s^.link; s^.link:= (E)_; (F)_ _ :=s; (G)_; END ELSE BEGIN (H)_ _; s:=q^.link; (I)__ ; dispose(s) END END; dispose(q) END;