.假設鏈表p和鏈表q中的結點值都是整數且按結點值的遞增次序鏈接起來的帶表頭結點的環形鏈表各鏈表的表頭結點的值為max且鏈表中其他結點的值都小於max在程序中取max為在各個鏈表中每個結點的值各不相同但鏈表p和鏈表q可能有值相同的結點(表頭結點除外)下面的程序將鏈表q合並到鏈表p中使得合並後的鏈表是按結點值遞增次序鏈接起來的帶表頭結點的環形鏈表且鏈表中各個結點的值各不相同請在劃線處填上適當內容每個框只填一個語句或一個表達式鏈表的結點類型如下
TYPE nodeptr=^nodetype
nodetype=RECORD
datainteger linknodeptr;
END
CONST max=;
PROCEDURE merge(VAR p:nodeptr;q:nodeptr);
VAR rs: nodeptr;
BEGIN
r:=p;
WHILE (A) DO
BEGIN
WHILE r^link^data<q^link^data DO (B) ;
IF 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;【復旦大學 五(分)】
.PROC ins__linklist(la:linkisttp; i:integer; b:elemtp);
{la為指向帶頭結點的單鏈表的頭指針本算法在表中第i個元素之前插入元素b}
p:= () ; j:= () ;{指針初始化j為計數器}
WHILE (p<>NIL) AND ( () ) DO [p:= () ; j:=j+]
{尋找第 i 個結點}
IF (p=NIL) OR ( () )
THEN error (No this position)
ELSE [new(s) ; s↑data:=b; s↑next:=p↑next; p↑next:=s;]
ENDP;{inslinklist}【燕山大學 四(分)】
[] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
From:http://tw.wingwit.com/Article/program/sjjg/201311/22563.html