深度ä¼å
æç´¢æéµå¾ªçæç´¢çç¥æ¯å°½å¯è½âæ·±âå°æç´¢å¾ãå¨æ·±åº¦ä¼å
æç´¢ä¸ï¼å¯¹äºææ°åç°çç»ç¹ï¼å¦æå®è¿æ以æ¤ä¸ºèµ·ç¹èæªæè¿çè¾¹ï¼å°±æ²¿ç边继ç»æç´¢ä¸å»ãå½ç»ç¹vçææè¾¹é½å·²è¢«æ¢å¯»è¿ï¼æç´¢å°å溯å°åç°ç»ç¹væé£æ¡è¾¹çå§ç»ç¹ãè¿ä¸è¿ç¨ä¸ç´è¿è¡å°å·²åç°ä»æºç»ç¹å¯è¾¾çææç»ç¹ä¸ºæ¢ãå¦æè¿åå¨æªè¢«åç°çç»ç¹ï¼åéæ©å
¶ä¸ä¸ä¸ªä½ä¸ºæºç»ç¹å¹¶éå¤ä»¥ä¸è¿ç¨ï¼æ´ä¸ªè¿ç¨åå¤è¿è¡ç´å°ææç»ç¹é½è¢«åç°ä¸ºæ¢ã
深度ä¼å
æç´¢åºæ¬ç®æ³å¦ä¸{éå½ç®æ³}ï¼
PROCEDURE dfs_try(i);
FOR i:=1 to maxr DO
BEGIN
IF åç»ç¹ mr 符åæ¡ä»¶ THEN
BEGIN
产ççåç»ç¹mrå
¥æ ï¼
IF åç»ç¹mræ¯ç®æ ç»ç¹
THEN è¾åº
ELSE dfs_try(i+1);
æ 顶å
ç´ åºæ ;
END;
END; 宽度ä¼å
æç´¢ç®æ³ï¼å称广度ä¼å
æç´¢ç®æ³ï¼æ¯æç®åçå¾çæç´¢ç®æ³ä¹ä¸ï¼è¿ä¸ç®æ³ä¹æ¯å¾å¤éè¦çå¾çç®æ³çååãDijkstaåæºæçè·¯å¾ç®æ³åPrimæå°çææ ç®æ³é½éç¨äºä¸å®½åº¦ä¼å
æ索类似çææ³ã
宽度ä¼å
æç´¢çæ ¸å¿ææ³æ¯ï¼ä»åå§ç»ç¹å¼å§ï¼åºç¨ç®ç¬¦çæ第ä¸å±ç»ç¹ï¼æ£æ¥ç®æ ç»ç¹æ¯å¦å¨è¿äºå继ç»ç¹ä¸ï¼è¥æ²¡æï¼åç¨äº§çå¼è§åå°ææ第ä¸å±çç»ç¹éä¸æ©å±ï¼å¾å°ç¬¬äºå±ç»ç¹ï¼å¹¶éä¸æ£æ¥ç¬¬äºå±ç»ç¹ä¸æ¯å¦å
å«ç®æ ç»ç¹ãè¥æ²¡æï¼åç¨ç®ç¬¦éä¸æ©å±ç¬¬äºå±ææç»ç¹â¦â¦ï¼å¦æ¤ä¾æ¬¡æ©å±ï¼ç´å°åç°ç®æ ç»ç¹ä¸ºæ¢ã
宽度ä¼å
æç´¢åºæ¬ç®æ³å¦ä¸ï¼
list[1]:=source; {å å
¥åå§ç»ç¹ï¼list为å¾
æ©å±ç»ç¹ç表}
head:=0; {éé¦æé}
foot:=1; {éå°¾æé}
REPEAT
head:=head+1;
FOR x:=1 to è§åæ° DO
BEGIN
æ ¹æ®è§å产çæ°ç»ç¹nw;
IF not_appear(nw,list) THEN {è¥æ°ç»ç¹éåä¸ä¸åå¨ï¼åå å°éå°¾}
BEGIN
foot:=foot+1;
list[foot]:=nw;
list[foot].father:=head;
IF list[foot]=ç®æ ç»ç¹ THEN è¾åºï¼
ENDï¼
ENDï¼
UNTIL head>foot; {éå为空表æåæ ç»ç¹å¯æ©å±}
温馨提示:答案为网友推荐,仅供参考