PROCEDURE create ( (1) )£» VAR p,q£ºptr£» k£ºinteger£» BEGIN
new£¨head£©£» q:=head£»read£¨k£©£»
WHILE k>0 DO BEGIN
(2); (3); (4); (5); read£¨k£© END;
q^.next£º=NIL;
END;¡¾±±¾©Ê¦·¶´óѧ 1999 Èý¡¿ 21. ÒѸøÈçϹØÓÚµ¥Á´±íµÄÀàÐÍ˵Ã÷£º TYPE
list=^node ;
node=RECORD
data: integer; next: list; END;
ÒÔϳÌÐò²ÉÓÃÁ´±íºÏ²¢µÄ·½·¨£¬½«Á½¸öÒÑÅÅÐòµÄµ¥Á´±íºÏ²¢³ÉÒ»¸öÁ´±í¶ø²»¸Ä±äÆäÅÅÐòÐÔ£¨ÉýÐò£©£¬ÕâÀïÁ½Á´±íµÄÍ·Ö¸Õë·Ö±ðΪpºÍq.
PROCEDURE mergelink(VAR p,q:list): VAR h,r: list; BEGIN
£¨1£©______
h^.next:= NIL; r:=h;
WHILE((p<>NIL) AND (q<>NIL)) DO IF (p^.data<=q^.data)
THEN BEGIN £¨2£©___£» r:=p; p:=p^.next£» END ELSE BEGIN £¨3£©____£» r:=q; q:=q^.next; END; IF (p=NIL) THEN r^.next:=q; £¨4£©__£»
p:=h^.next; dispose(h);
END;¡¾ÏÃÃÅ´óѧ 2000 Èý¡¢2 £¨8·Ö£©¡¿
22£®¼ÙÉèÁ´±í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^.dataq^.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;¡¾¸´µ©´óѧ 1997 Î壨18·Ö£©¡¿
23£®PROC ins__linklist(la:linkisttp; i:integer; b:elemtp);
{laΪָÏò´øÍ·½áµãµÄµ¥Á´±íµÄÍ·Ö¸Õ룬±¾Ëã·¨ÔÚ±íÖеÚi¸öÔªËØÖ®Ç°²åÈëÔªËØb} p:=(1) ; j:=(2) ;{Ö¸Õë³õʼ»¯£¬jΪ¼ÆÊýÆ÷}
WHILE (p<>NIL) AND ((3) ) DO [p:=(4) ; j:=j+1£»] {ѰÕÒµÚ i-1 ¸ö½áµã}
IF (p=NIL) OR ((5) )
THEN error (¡®No this position¡¯)
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 (jNIL 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)ÊDz½³¤£¬Ö¸Ã÷´ÓÆðʼ½áµã»òǰ´Î±»É¾³ý²¢Êä³öµÄ½áµãÖ®ºóµÄµÚm¸ö½áµã×÷Ϊ±¾´Î±»Êä³ö²¢É¾³ýµÄ½áµã¡£ÀýÈ磬¶ÔÓÚÏÂͼÖоßÓÐ6¸ö½áµãµÄ»·ÐÎÁ´±í£¬ÔÚµ÷Óà josephus(6,3,2)ºó£¬½«Êä³ö 5,1,3,6,4,2 ÇëÔÚºáÏß´¦ÌîÉÏÊʵ±ÄÚÈÝ£¬
ÿ¿ÕÖ»ÌîÒ»¸öÓï¾ä¡£
TYPE nodeptr=^nodetype; nodetype=RECORD
data: intrger; link: nodeptr
END; VAR n,i,m: integer;
FUNCTION Create_link_list(n: integer): nodeptr; VAR head,p,q: nodeptr; i:integer; BEGIN head := NIL; IF n>0 THEN
BEGIN new(head); p: =head; FOR i:=1 TO n-1 DO
BEGIN p^.data:=i; new(q); (A)____; (B)____ END£» p^.data:=n; (C)___; END;
Creat_link_list:=head
END;
PROCEDURE josephus(n,i,m:integer); VAR p,q:nodeptr; j:integer; BEGIN p:=Creat_link_list(n);
WHILE i>1 DO BEGIN p:=p^.link; i:=i-1 END; (D)___ ;
WHILE j FOR i:=1 TO m-1 DO p:=p^.link; (E)___; write(q^.data:8); (F)__ ; dispose(q); j:=j+1 END END;¡¾¸´µ©´óѧ 1997 ËÄ£¨12·Ö£©¡¿ 27£®¶ÔÓÚ¸ø¶¨µÄÏßÐÔÁ´±íhead , ÏÂÃæµÄ³ÌÐò¹ý³ÌʵÏÖÁ˰´½áµãÖµ·Ç½µ´ÎÐòÊä³öÁ´±íÖеÄËùÓнáµã£¬ÔÚÿ´ÎÊä³öÒ»¸ö½áµãʱ£¬¾Í°Ñ¸ÕÊä³öµÄ½áµã´ÓÁ´±íÖÐɾȥ¡£ÇëÔÚ»®Ïß´¦ÌîÉÏÊʵ±µÄÄÚÈÝ£¬Ê¹Ö®³ÉΪһ¸öÍêÕûµÄ³ÌÐò¹ý³Ì£¬Ã¿¸ö¿Õ¿òÖ»ÌîÒ»¸öÓï¾ä¡£ TYPE nodeptr =^ nodetype£» nodetype = RECORD data : integer£»link : nodeptr END; VAR head : nodeptr£» PROCEDURE sort_output_delete (head : nodeptr); VAR p,q,r,s: nodeptr; BEGIN WHILE head <> NIL DO BEGIN p:= NIL £»q:= head£»r:= q £»s:=q^.link £» WHILE s <> NIL DO BEGIN IF s^.data < q^.data THEN BEGIN (1)__; (2)___ END £» r:= s £» (3)___ END£» write(q^.data : 5) £» IF p=NIL THEN (4)___ ELSE (5)____ £» dispose (q) £» END£» writeln END£»¡¾¸´µ©´óѧ 1996 Æß£¨20·Ö£© 1995 Ò»£¨12·Ö£©Óë±¾ÌâÏàËÆ¡¿ 28£®ÏÂÃæº¯ÊýµÄ¹¦ÄÜÊÇÔÚÒ»¸ö°´·ÃÎÊÆµ¶È²»ÔöÓÐÐòµÄ£¬´øÍ·½áµãµÄË«ÏòÁ´»·ÉϼìË÷¹Ø¼üֵΪxµÄ½áµã£¬¶Ô¸Ã½áµã·ÃÎÊÆµ¶È¼ÆÊý£¬²¢Î¬»¤¸ÃÁ´»·ÓÐÐò¡£ÈôδÕÒµ½£¬Ôò²åÈë¸Ã½áµã¡£ËùÓнáµãµÄƵ¶ÈÓò³õÖµÔÚ½¨±íʱ¶¼ÎªÁã¡£Ç뽫³ÌÐòÖÐËÄ´¦¿Õȱ²¹Ð´ÍêÕû¡£ TYPE link=^node node=RECORD key:char; freq:integer; pre,next:link; END; VAR l:link;