熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> 數據結構 >> 正文

數據結構考研分類復習真題 第二章 線性表[15]

2013-11-15 14:56:04  來源: 數據結構 

  .假設鏈表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
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.