×îÍêÕûµÄÊý¾Ý½á¹¹1800Ì⺬´ð°¸

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;

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)