ÇϳªÀÇ ºÎ¸ð ¾Æ·¡¿¡ º¹¼ö °³ÀÇ ÀÚ½ÄÀÌ Æ÷Ç﵃ ¼ö ÀÖ´Â ±¸Á¶¸¦ °èÃþÀû(Hierarchical)À̶ó°í Çϴµ¥ ÀÌ·± ÀÚ·á´Â ¾ÆÁÖ ÈçÇÏ´Ù. ȸ»çÀÇ Á¶Á÷µµ, ¿ìÆí ¹øÈ£ºÎ, »óǰ ºÐ·ùÇ¥ µî ÀÏ»ó »ýȰ¿¡¼µµ ÈçÈ÷ Á¢ÇÒ ¼ö ÀÖ´Â Á¤º¸µéÀÌ ¸ðµÎ °èÃþÀûÀ̸ç ÇÁ·Î±×·¥ÀÌ ÀÌ·± ÀڷḦ ´Ù·ç¾î¾ß ÇÏ´Â °æ¿ì°¡ ¸¹´Ù.
¿ø·ÐÀûÀ¸·Î °èÃþÀûÀÎ ÀÚ·áµéÀº Æ®¸®(Tree)·Î °ü¸®ÇÒ ¼ö ÀÖÁö¸¸ ³Ê¹« º¹ÀâÇÏ°í ºñÈ¿À²ÀûÀε¥´Ù°¡ µ¥ÀÌÅÍ º£À̽ºÀÇ Å×ÀÌºí ±¸Á¶¿Í´Â ¸ÂÁö ¾Ê´Ù. °ü°èÇü µ¥ÀÌÅÍ º£À̽ºÀÇ Å×À̺íÀº ¹è¿ ÇüÅ·ΠµÇ¾î ÀÖ´Ù. ±×·¡¼ °èÃþÀûÀÎ ÀÚ·á¶óµµ Åë»ó ¹è¿À̳ª ¿¬°á ¸®½ºÆ®¸¦ »ç¿ëÇÏ´Â °£´ÜÇÑ ¹æ¹ýÀ» ¸¹ÀÌ »ç¿ëÇϴµ¥ °¢ ·¹Äڵ忡 ºÎ¸ð°¡ ´©±¸ÀÎÁö¸¦ Ç¥½ÃÇÔÀ¸·Î½á ·¹Äڵ尣ÀÇ °èÃþÀ» ±¸¼ºÇÑ´Ù.
½Ã±ºÇàÁ¤µµ¸¦ ¹è¿·Î Ç¥ÇöÇØ º¸µµ·Ï ÇÏÀÚ. ÇàÁ¤µµ´Â ´ëÇѹα¹À̶ó´Â ·çÆ® ·¹ÄÚµå ¾Æ·¡¿¡ ¼¿ï½Ã, °æ±âµµ, °¿øµµ µîÀÌ ÀÖ°í °¿øµµ ¾Æ·¡¿¡ ¼ÓÃʽÃ, ¿øÁÖ½Ã, Ãáõ½Ã µîÀÌ ÀÖ´Â ÀüÇüÀûÀÎ °èÃþ ±¸Á¶ÀÌ´Ù. ´ÙÀ½ ¿¹Á¦ÀÇ arCity ¹è¿ÀÌ ÀÌ·± °èÃþÀûÀÎ °ü°è¸¦ ÀÏÂ÷¿øÀÇ ¹è¿·Î ±â¾ïÇÑ´Ù.
|
¿¹ Á¦ : CityTree |
#include <Turboc.h>
struct tag_City
{
int Parent;
TCHAR *Name;
};
tag_City arCity[]={
-1,"´ëÇѹα¹",
0,"¼¿ïƯº°½Ã",
1,"µ¿´ë¹®±¸",
2,"û·®¸®µ¿",
2,"ȸ±âµ¿",
2,"½Å¼³µ¿",
1,"ÇѰ±¸",
6,"Æþ´çµ¿",
6,"¿ùôµ¿",
0,"°æ±âµµ",
9,"ȼº½Ã",
9,"±Ý¼º½Ã",
9,"¸ñ¼º½Ã",
};
BOOL HaveChild(int idx)
{
int i;
for (i=0;i<sizeof(arCity)/sizeof(arCity[0]);i++) {
if (arCity[i].Parent == idx) {
return TRUE;
}
}
return FALSE;
}
void PrintCity(int Parent,int indent)
{
int i,j;
for (i=0;i<sizeof(arCity)/sizeof(arCity[0]);i++) {
if (arCity[i].Parent == Parent) {
for (j=0;j<indent;j++) putch(' ');
printf("%s\n",arCity[i].Name);
if (HaveChild(i)) {
PrintCity(i,indent+2);
}
}
}
}
void main()
{
PrintCity(-1,0);
}
tag_City ±¸Á¶Ã¼°¡ ÇϳªÀÇ ·¹ÄÚµåÀε¥ Parent ¸â¹ö°¡ ºÎ¸ð ·¹ÄÚµåÀÇ Ã·ÀÚ¸¦ ±â¾ïÇϸç NameÀº ÇàÁ¤¸íÀÌ´Ù. arCity ¹è¿ÀÇ ÃʱⰪÀ» ºÐ¼®ÇØ º¸¸é ´ëÇѹα¹ÀÇ ºÎ¸ð´Â -1·Î ÁöÁ¤µÇ¾î ÀÖ¾î ·çÆ®ÀÓÀ» Ç¥½ÃÇϰí ÀÖ´Ù. ¼¿ïƯº°½Ã, °æ±âµµ´Â ´ëÇѹα¹ÀÇ ÀÚ½Ä ·¹ÄÚµåÀ̹ǷΠºÎ¸ð°¡ 0¹ø ·¹ÄÚµå·Î ÁöÁ¤µÇ¾î ÀÖÀ¸¸ç µ¿´ë¹®±¸, ÇѰ±¸ÀÇ ºÎ¸ð´Â 1¹ø ÷ÀÚÀÎ ¼¿ïƯº°½Ã·Î µÇ¾î ÀÖ´Ù. Æþ´çµ¿, ¿ùôµ¿Àº ÇѰ±¸ ¾Æ·¡¿¡ ÀÖÀ¸¹Ç·Î ºÎ¸ðÀÇ Ã·ÀÚ°¡ 6¹øÀÌ´Ù.
arCity ¹è¿Àº Àç±ÍÀûÀÎ °èÃþÀû ±¸Á¶¸¦ °¡Áö°í ÀÖÀ¸¹Ç·Î ÀÌ ¹è¿À» ¼øÈ¸ÇÏ·Á¸é Àç±Í È£ÃâÀ» »ç¿ëÇØ¾ß ÇÑ´Ù. ¿¹Á¦¿¡¼´Â arCity¿¡ Æ÷ÇÔµÈ ¸ðµç ·¹Äڵ带 ¼øÈ¸ÇÏ¸é¼ Æ®¸® ÇüÅ·ΠÃâ·ÂÇÏ´Â PrintCity ÇÔ¼ö¸¦ ÀÛ¼ºÇϰí ÀÖ´Ù. PrintCity ÇÔ¼ö´Â Parent ¾Æ·¡ÀÇ ¸ðµç Â÷Àϵ带 indent À§Ä¡¿¡ Ãâ·ÂÇÑ´Ù. indent´Â µé¿©¾²±â Á¤µµ¸¦ ÀǹÌÇÏ¸ç °èÃþ ±¸Á¶»óÀÇ ·¹ÄÚµå ±íÀ̸¦ Ç¥ÇöÇÑ´Ù. ÀÚ½Ä ·¹ÄÚµå´Â ºÎ¸ðº¸´Ù µÎ Ä ´õ µé¿©¾²´Â °ÍÀÌ º¸±â¿¡ ÁÁ´Ù. main ÇÔ¼ö¿¡¼ PrintCity(-1,0)À» È£ÃâÇÏ¿© ·çÆ® ·¹ÄÚµå ¾Æ·¡ÀÇ ¸ðµç ÀڽĵéÀ» µé¿©¾²±â 0¿¡ Ãâ·ÂÇÑ´Ù. ÀÌÈÄ ´ëÇѹα¹ ¾Æ·¡ÀÇ ¸ðµç ·¹Äڵ带 Ãâ·ÂÇÏ´Â ÀÏÀº PrintCity ÇÔ¼ö°¡ ´ã´çÇÑ´Ù.
PrintCity ÇÔ¼ö´Â ·çÇÁ¸¦ µ¹¸ç ºÎ¸ð°¡ ParentÀÎ ¸ðµç ·¹Äڵ带 °Ë»öÇØ¼ Ãâ·ÂÇ쵂 ¸¸¾à ÀÌ ·¹Äڵ尡 ÀÚ½ÄÀ» °Å´À¸®°í ÀÖÀ¸¸é Àç±Í È£ÃâÀÌ ¹ß»ýÇÑ´Ù. ÃÖÃÊ main¿¡¼ Parent°ªÀ¸·Î -1À» ÁÖ¾ú°í ºÎ¸ð°¡ -1ÀÎ ·¹ÄÚµå´Â ´ëÇѹα¹ Çϳª¹Û¿¡ ¾øÀ¸¸ç ÀÌ ·¹ÄÚµå ¾Æ·¡¿¡ ¼¿ï½Ã, °æ±âµµ°¡ ÀÖÀ¸¹Ç·Î µÎ ¹ø Àç±Í È£ÃâÀÌ ¹ß»ýÇÒ °ÍÀÌ´Ù. À̶§ indent¸¦ 2 Áõ°¡½ÃÄÑ ºÎ¸ðº¸´Ù Á¶±Ý ´õ µé¿© ¾²µµ·Ï Çß´Ù. Ãâ·Â °á°ú´Â ´ÙÀ½°ú °°´Ù.
´ëÇѹα¹
¼¿ïƯº°½Ã
µ¿´ë¹®±¸
û·®¸®µ¿
ȸ±âµ¿
½Å¼³µ¿
ÇѰ±¸
Æþ´çµ¿
¿ùôµ¿
°æ±âµµ
ȼº½Ã
±Ý¼º½Ã
¸ñ¼º½Ã
´ëÇѹα¹ ¾Æ·¡ÀÇ ·¹ÄÚµåµéÀÌ º¸±âÁÁ°Ô µé¿©¾²±âµÇ¾î Ãâ·ÂµÇ¾ú´Ù. ±×·¡ÇÈ È¯°æÀ̶ó¸é ºÎ¸ð¿Í Àڽİ£ÀÇ °ü°è¸¦ Á÷¼±À¸·Î ¿¬°áÇÏ¿© Á» ´õ º¸±â ÁÁ°Ô Ãâ·ÂÇÒ ¼öµµ ÀÖ°í Win32 Æ®¸® ºä ÄÁÆ®·ÑÀ» »ç¿ëÇϸé Ž»ö±âó·³ °èÃþÀûÀÎ ³ëµå¸¦ »ý¼ºÇÒ ¼öµµ ÀÖÀ» °ÍÀÌ´Ù. ƯÁ¤ ·¹ÄÚµå¹Ø¿¡ ÀÚ½ÄÀÌ ÀÖ´ÂÁö ¾ø´ÂÁö´Â HaveChild ÇÔ¼ö·Î °£´ÜÇϰÔ(±×·¯³ª Á¶±Ý ºñÈ¿À²ÀûÀ¸·Î) °Ë»çÇß´Ù.
ÀÌ ÇÔ¼ö´Â ºÒÇÊ¿äÇÑ Àç±Í È£ÃâÀ» ¸·¾ÆÁÖ´Â ¿ªÇÒÀ» Çϴµ¥ »ç½Ç ÀÌ ¿¹Á¦¿¡¼´Â ²À ÇÊ¿äÄ¡ ¾Ê´Ù. ¹«Á¶°Ç PrintCity¸¦ Àç±Í È£ÃâÇØµµ ÀÚ½ÄÀÌ ¾ø´Â ·¹ÄÚµå´Â ºó ·çÇÁ¸¸ µ¹´Ù°¡ ÇêÅÁÄ¡°í µ¹¾Æ¿Ã °ÍÀÌ´Ù. ¾Õ Ç×ÀÇ FileList ¿¹Á¦µµ ¸¶Âù°¡Áö·Î µð·ºÅ丮À̱⸸ ÇÏ¸é ¹«Á¶°Ç Àç±Í È£ÃâÀ» Çߴµ¥ ÀÌ °æ¿ì´Â °¬´Ù°¡ ±×³É µ¹¾Æ¿À´Â ½Ã°£ÀÌ µð·ºÅ丮 ¾È¿¡ ÆÄÀÏÀÌ ÀÖ´ÂÁö °Ë»çÇÏ´Â °Í°ú º°¹Ý Â÷À̰¡ ¾ø±â ¶§¹®ÀÌ´Ù. ±×·¯³ª ±×·¸Áö ¾ÊÀº °æ¿ì´Â ÀÚ½ÄÀ» °¡ÁöÁö ¾ÊÀº Ç׸ñ¿¡ ´ëÇØ¼´Â °¡±ÞÀû Àç±Í È£ÃâÀ» ÀÚÁ¦ÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î ÇêÅÁÄ¡°í µ¹¾Æ¿À´Âµ¥µµ ±²ÀåÇÑ ½Ã°£ÀÌ °É¸°´Ù°Å³ª ÀÚ·á¿¡ ¾î¶² º¯ÇüÀ» °¡ÇÏ´Â µ¿ÀÛÀ» ÇÒ °æ¿ì°¡ ÀÌ¿¡ ÇØ´çµÈ´Ù.
PrintCity ÇÔ¼ö´Â ÁöÁ¤ÇÑ ·¹ÄÚµåÀÇ ¸ðµç ÀÚ½Ä(±× ¾Æ·¡ÀÇ ÀڽıîÁö)À» Ãâ·ÂÇϹǷΠmain¿¡¼´Â ´ëÇѹα¹ ¾Æ·¡¸¦ Ãâ·ÂÇϵµ·Ï PrintCity ÇÔ¼ö¸¸ È£ÃâÇÏ¸é µÈ´Ù. ¹°·Ð ¿øÇÑ´Ù¸é ¼¿ï½Ã ¾Æ·¡ÀÇ ÇàÁ¤¸í¸¸ Ãâ·ÂÇÏ´Â °Íµµ °¡´ÉÇÏ´Ù. ÀÌ ÇÔ¼ö´Â ·çÇÁ¸¦ µ¹¸ç Parent ¾Æ·¡ÀÇ ¸ðµç ÀڽĵéÀ» Ãâ·ÂÇ쵂 ÀÚ½ÄÀÌ ÀÖ´Â ·¹ÄÚµå´Â Àç±Í È£ÃâÇÏ¿© ¹®Á¦ÀÇ ¹üÀ§¸¦ Á¡Á¡ Á¼Çô°¡´Â ¹æ¹ýÀ» »ç¿ëÇÑ´Ù. ¸¸¾à Àç±Í È£ÃâÀ» ¾²Áö ¾Ê´Â´Ù¸é ÀÌ ¹®Á¦´Â ´ë´ÜÈ÷ Ç®±â ¾î·Á¿îµ¥ Á÷Á¢ ½ÃµµÇØ º¸¸é ¾Æ¸¶ Àß ¾ÈµÉ °ÍÀÌ´Ù. ³í¸®ÀûÀ¸·Î °¡´ÉÀº ÇÏÁö¸¸ Äڵ尡 ±æ¾îÁö°í ¼Óµµµµ ÀÌ ¿¹Á¦º¸´Ù ´À¸®´Ù.
Àç±Í È£ÃâÀ» ½ÇÁ¦ ¹®Á¦¿¡ Àû¿ëÇÏ´Â ÀϹÝÀûÀÎ ¹ýÄ¢ °°Àº °ÍÀº ¾ø´Ù. ½ÇÁ¦ ¹®Á¦ÀÇ º¹À⼺°ú Ư¼º¿¡ µû¶ó Àü´ÞÇÒ Àμö¿Í ¹ÝȯÁ¡, Áö¿ªº¯¼ö ¸ñ·Ï, ·çÇÁÀÇ ±¸Á¶¸¦ ÀûÀýÇÏ°Ô ¼±ÅÃÇØ¾ß ÇÑ´Ù. ¾î¶² °æ¿ì´Â ¹°¸®ÀûÀÎ ÇѰè·Î ÀÎÇØ Áö¿ªº¯¼ö¸¦ ¸¶À½´ë·Î ¾µ ¼ö ¾ø´Â »óȲµµ ÀÖ´Ù. arCity ¹è¿Àº ¾ðÁ¦µçÁö ÂüÁ¶ÇÒ ¼ö ÀÖ´Â ¹è¿ÀÌÁö¸¸ ÀÌ·± µ¥ÀÌÅͰ¡ µ¥ÀÌÅÍ º£À̽º¿¡ ÀúÀåµÇ¾î Àִٰųª ³×Æ®¿öÅ©¸¦ ÅëÇØ Àü¼Û¹Þ´Â °æ¿ì´Â °ªÀ» Àд ¹æ¹ýÀÇ Æ¯¼ºÀ» Àß °í·ÁÇØ¾ß ÇÑ´Ù. arCity°¡ µ¥ÀÌÅÍ º£À̽º¿¡ µé¾î ÀÖ´Ù¸é ÀÌ ÇÔ¼öÀÇ ÇüÅ´ ¾Æ¸¶ ´ÙÀ½°ú °°ÀÌ º¯°æµÇ¾î¾ß ÇÒ °ÍÀÌ´Ù. ÆíÀÇ»ó µé¿©¾²±â ±â´ÉÀº Á¦¿ÜÇϵµ·Ï ÇÏÀÚ.
void PrintCity(int Parent)
{
Parent ¾Æ·¡ÀÇ ÀÚ½Äµé ¸ñ·Ï Á¶»çÇÏ´Â Äõ¸® ½ÇÇà
for (child=ù°~¸·³») {
childÀÇ À̸§ Ãâ·Â
if (childÀÇ ÀÚ½ÄÀÌ ÀÖÀ¸¸é)
PrintCity(child);
}
}
arCity ¹è¿À» Àд ´ë½Å Äõ¸®(Query)¹®À¸·Î Á¶°Ç¿¡ ¸Â´Â ·¹Äڵ带 °Ë»öÇϵµ·Ï Çß´Ù. ÀϹÝÀûÀ¸·Î Äõ¸®ÀÇ °á°ú¼ÂÀº µ¥ÀÌÅÍ º£À̽º ¼¹ö°¡ °¡Áö¹Ç·Î Ŭ¶óÀ̾ðÆ®ÀÇ ÀÔÀå¿¡¼ °á°ú¼ÂÀº Àü¿ªÀûÀ̶ó´Â Ư¼ºÀÌ ÀÖ´Ù. °á°ú¼ÂÀº ÇÔ¼ö È£Ãâ ÀνºÅϽºº°·Î ½ºÅÿ¡ À¯ÁöµÇÁö ¾ÊÀ¸¸ç Àç±Í È£ÃâµÈ ÇÔ¼ö°¡ »õ·Î¿î Äõ¸®¸¦ ½ÇÇàÇÏ´Â Áï½Ã ÀÌÀü °á°ú¼ÂÀº ÆÄ±«µÇ¾î ¹ö¸°´Ù. PrintCity°¡ Àç±Í È£ÃâµÈ ÈÄ ¸®ÅϵǾúÀ» ¶§ ÇöÀç ÇÔ¼ö´Â °á°ú¼ÂÀ» ÀÒ¾î ¹ö¸®°Ô µÇ°í °è¼ÓÀûÀÎ °Ë»öÀ» ÇÒ ¼ö ¾ø´Ù.
ÀÌ´Â ³×Æ®¿öÅ©¸¦ ÅëÇØ µ¥ÀÌÅ͸¦ Àü¼Û¹ÞÀ» ¶§µµ ¸¶Âù°¡ÁöÀÌ´Ù. ±Ùº»ÀûÀ¸·Î Áö¿ª Äõ¸®³ª Áö¿ª ³×Æ®¿öÅ© Á¢¼ÓÀ̶ó´Â °ÍÀÌ ¾î·Æ±â ¶§¹®¿¡ ÀÌ·± °æ¿ì´Â Äõ¸®¸¦ ÇÏ¸é¼ Àç±Í È£ÃâÀ» ÇÏ´Â °ÍÀÌ ºÒ°¡´ÉÇÏ´Ù. ±×·¡¼ ÇÑ ¹ø Äõ¸®¸¦ ÇÒ ¶§ ¼¹ö¿¡ ÀÖ´Â °á°ú¼ÂÀ» Ŭ¶óÀÌ¾ðÆ®·Î ¸ðÁ¶¸® º¹»çÇØ¾ß ÇÏ¸ç »çº»À» ¶á ÈÄ Àç±Í È£ÃâÀ» ÇØ¾ß ¸®ÅÏÇßÀ» ¶§ ´ÙÀ½ °á°ú¼ÂÀ» Á¦´ë·Î ÀÐÀ» ¼ö ÀÖ´Ù.
void PrintCity(int Parent)
{
Parent ¾Æ·¡ÀÇ ÀÚ½Äµé ¸ñ·Ï Á¶»çÇÏ´Â Äõ¸® ½ÇÇà
°á°ú¼ÂÀÇ °á°ú¸¸Å ¹è¿ ÇÒ´ç ÈÄ »çº» º¹»ç
for (child=ù°~¸·³») {
childÀÇ À̸§ Ãâ·Â
if (childÀÇ ÀÚ½ÄÀÌ ÀÖÀ¸¸é)
PrintCity(child);
}
¹è¿ ÇØÁ¦
}
°¢ È£Ãâ ÀνºÅϽº´Â Àü¿ª Äû¸®¸¦ »ç¿ëÇ쵂 °á°ú¼ÂÀÇ »çº»À» º°µµÀÇ ¸Þ¸ð¸® °ø°£¿¡ º¹»çÇØ µÐ´Ù. °á°ú¼ÂÀÌ ½ºÅÿ¡ ÀúÀåµÇ´Â Áö¿ªº¯¼ö°¡ ¾Æ´Ï±â ¶§¹®¿¡ °¢ È£Ãâ ÀνºÅϽº¸¶´Ù ¸Þ¸ð¸®¸¦ µ¿ÀûÀ¸·Î ÇÒ´çÇØ¼ ÀúÀåÇØ¾ß ÇÑ´Ù. Àü¿ªÀûÀÎ Äõ¸® °á°ú¸¦ Áö¿ªÀûÀÎ »çº»À¸·Î ¸¸µé¾î¼ °¢ ÇÔ¼ö È£Ãâ ÀνºÅϽº°¡ Àڱ⸸ÀÇ °á°ú¼ÂÀ» °¡Áú ¼ö ÀÖµµ·Ï ÇØ ÁÖ´Â °ÍÀÌ´Ù.
CityTree ¿¹Á¦´Â ·¹Äڵ尡 ºÎ¸ð ·¹ÄÚµåÀÇ ¹è¿»ó ÷ÀÚ¸¦ ±â¾ïÇϴµ¥ ÀÌ ¹æ½ÄÀ» ¾²¸é 1Â÷¿ø ¹è¿·Î °£ÆíÇÏ°Ô °èÃþ ±¸Á¶¸¦ Ç¥ÇöÇÒ ¼ö ÀÖ°í ÀڽĵéÀÇ ¼ø¼°¡ ²À Á¤·ÄµÇ¾î ÀÖÁö ¾Ê¾Æµµ »ó°ü¾ø´Ù. ´ë½Å ºÎ¸ð ·¹ÄÚµåÀÇ Ã·ÀÚ¸¦ ±â¾ïÇϰí Àֱ⠶§¹®¿¡ »ðÀÔ, »èÁ¦¿¡ ÀÇÇØ ºÎ¸ðÀÇ Ã·ÀÚ°¡ º¯°æµÉ °æ¿ì ÀڽĵéÀÌ ÂüÁ¶Çϰí ÀÖ´Â ºÎ¸ðÀÇ Ã·ÀÚ¸¦ Á¶Á¤ÇØ ÁÖ¾î¾ß ÇÏ´Â ´ÜÁ¡ÀÌ ÀÖ´Ù. ÀÌ·± ¹®Á¦¸¦ ÇØ°áÇÏ·Á¸é ¹è¿»óÀÇ Ã·ÀÚ°¡ ¾Æ´Ñ °íÀ¯ÀÇ id¸¦ °¢ Ç׸ñ¿¡ ÇÒ´çÇϰí ÀڽĵéÀº ºÎ¸ðÀÇ id¸¦ °¡¸®Å°µµ·Ï ÇÏ¸é µÈ´Ù. ´ÙÀ½Àº ¼öÁ¤µÈ ¿¹Á¦ÀÌ´Ù.
|
¿¹ Á¦ : CityTree2 |
#include <Turboc.h>
struct tag_City
{
int id;
int Parent;
TCHAR *Name;
};
tag_City arCity[]={
0,-1,"´ëÇѹα¹",
1,0,"¼¿ïƯº°½Ã",
2,1,"µ¿´ë¹®±¸",
3,2,"û·®¸®µ¿",
4,2,"ȸ±âµ¿",
5,2,"½Å¼³µ¿",
6,1,"ÇѰ±¸",
7,6,"Æþ´çµ¿",
8,6,"¿ùôµ¿",
9,0,"°æ±âµµ",
10,9,"ȼº½Ã",
11,9,"±Ý¼º½Ã",
12,9,"¸ñ¼º½Ã",
};
BOOL HaveChild(int idx)
{
int i;
for (i=0;i<sizeof(arCity)/sizeof(arCity[0]);i++) {
if (arCity[i].Parent == idx) {
return TRUE;
}
}
return FALSE;
}
void PrintCity(int Parent,int indent)
{
int i,j;
for (i=0;i<sizeof(arCity)/sizeof(arCity[0]);i++) {
if (arCity[i].Parent == Parent) {
for (j=0;j<indent;j++) putch(' ');
printf("%s\n",arCity[i].Name);
if (HaveChild(arCity[i].id)) {
PrintCity(arCity[i].id,indent+2);
}
}
}
}
void main()
{
PrintCity(-1,0);
}
tag_City ¹è¿¿¡ id ¸â¹ö¸¦ Ãß°¡ÇÏ°í °¢ ¹è¿ ¿ä¼Ò°¡ Áߺ¹µÇÁö ¾Ê´Â °íÀ¯ÀÇ id¸¦ °¡Áöµµ·Ï Çß´Ù. PrintCity ÇÔ¼ö¿¡¼ HaveChild¸¦ È£ÃâÇÒ ¶§ ¹è¿ ÷ÀÚÀÎ i ´ë½Å arCity[i].id¸¦ »ç¿ëÇϸç Àç±Í È£ÃâÀ» ÇÒ ¶§µµ arCity[i].id¸¦ »ç¿ëÇÔÀ¸·Î½á ¹è¿»óÀÇ ¼ø¼¿¡ »ó°ü¾øÀÌ °èÃþ ±¸Á¶¸¦ ¼øÈ¸ÇÒ ¼ö ÀÖ´Ù. ÀÌ·¸°Ô µÇ¸é ¹è¿»óÀÇ ¼ø¼°¡ ¹Ù²î¾îµµ id´Â Ç×»ó ÀÏÁ¤ÇϹǷΠÇ׸ñÀÇ ¼ø¼´Â ¾Æ¹« Àǹ̰¡ ¾ø¾îÁø´Ù. ´ÙÀ½°ú °°ÀÌ arCity ¹è¿À» ¸¶±¸ µÚ¼¯¾î ³õ°í ½ÇÇàÇØµµ °á°ú´Â µ¿ÀÏÇÏ´Ù.
tag_City arCity[]={
4,2,"ȸ±âµ¿",
10,9,"ȼº½Ã",
11,9,"±Ý¼º½Ã",
5,2,"½Å¼³µ¿",
1,0,"¼¿ïƯº°½Ã",
2,1,"µ¿´ë¹®±¸",
12,9,"¸ñ¼º½Ã",
3,2,"û·®¸®µ¿",
7,6,"Æþ´çµ¿",
8,6,"¿ùôµ¿",
0,-1,"´ëÇѹα¹",
9,0,"°æ±âµµ",
6,1,"ÇѰ±¸",
};
Ç׸ñ³¢¸® id°¡ Áߺ¹µÇÁö ¾Ê°í ÀڽĵéÀÌ ºÎ¸ðÀÇ id¸¦ Á¦´ë·Î °¡¸®Å°°í¸¸ ÀÖÀ¸¸é ¹è¿»óÀÇ ¼ø¼°¡ ¹Ù²î¾îµµ id´Â Ç×»ó ÀÏÁ¤ÇϹǷΠÇ׸ñÀÇ Ãß°¡, »èÁ¦, À̵¿ÀÌ ÀÚÀ¯·Ó´Ù. ÀÌ ¹æ½Ä´ë·Î¶ó¸é ½ÇÇàÁß¿¡ Æ®¸®¸¦ ÆíÁýÇÒ ¼öµµ ÀÖ´Ù. ¹è¿»óÀÇ Ã·ÀÚ¸¦ ºÎ¸ðÀÇ id·Î »ç¿ëÇÏ´Â ¹æ¹ýÀº ±¸Á¶°¡ °£ÆíÇϹǷΠ¿ìÆí¹øÈ£ºÎ°°ÀÌ º¯°æµÇÁö ¾Ê´Â Á¤ÀûÀÎ Æ®¸®¸¦ Ç¥ÇöÇϴµ¥ ÀûÇÕÇÏ¸ç º°µµÀÇ id¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀº ȸ»ç Á¶Á÷µµ³ª µð·ºÅ丮¿Í ÆÄÀÏ °èÃþ°°Àº µ¿ÀûÀÎ Æ®¸®¸¦ °ü¸®Çϴµ¥ ÀûÇÕÇÏ´Ù.