ADT - Ãß»ó µ¥ÀÌÅÍ Å¸ÀÔ
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

Docbook ¿ø¹®

ADT

ADT

À± »ó¹è

dreamyun@yahoo.co.kr


차례
1절. ¼Ò°³
2절. µ¥ÀÌŸ Ãß»óÈ­
2.1절. Ãß»ó¿¡ ´ëÇØ¼­
2.1.1절. ±×¸²¿¡¼­ÀÇ Ãß»ó
2.1.2절. ÇÁ·Î±×·¡¹Ö ¿¡¼­ÀÇ Ãß»ó
2.2절. ADT(Abstracte Data Type) - µ¥ÀÌŸÀÇ Ãß»ó -
3절. °á·Ð

1절. ¼Ò°³

À̱ÛÀº ÀڷᱸÁ¶¿Í ¾Ë°í¸®Áò¿¡ °ü·ÃµÈ ù¹øÂ° ±Û·Î¼­, ÇÊÀÚÀÇ ´ëÇпø°úÁ¤Áß¿¡ ÀÖ´Â ÀڷᱸÁ¶ ¼ö¾÷ÀÇ ³»¿ëÀ» ³ª¸§´ë·Î Á¤¸®ÇÏ°í °øºÎÇØ¼­ ¿Ã¸®´Â ±ÛÀÌ´Ù.

°ü·ÃÀü°øÀÚ¶ó¸é ºÐ¸íÈ÷ 2-3Çбâ Á¤µµ´Â ¼ö°­ÇßÀ»°ÍÀ¸·Î »ý°¢µÇ¹Ç·Î ¾îÂî º¸¸é »·Çѳ»¿ëÀϼöµµ ÀÖ°Ú´Ù. ÀÌ¹Ì ¼ö°­Çß´Ù¸é º¹½ÀÇÏ´Â ¸¶À½À¸·Î °¡º±°Ô ÀÐÀ¸¸é ÁÁÀ»µí ÇÏ´Ù.

ºñ·Ï °³ÀÎÀûÀ¸·Î °øºÎÇÏ´Â ³»¿ëÀ» ¿Ã¸®±â´Â ÇÏÁö¸¸ ¸¹Àº À̱ÛÀ» Àд µ¶ÀÚ?ºÐµéÀÌ ³Ê¹« ½É½ÉÇÏÁö ¾Êµµ·Ï À̷аú ´õºÒ¾î ½ÇÁ¦ ±¸Çö¿¡ ÁßÁ¡À» µÎ°í ±ÛÀ» Àü°³ÇØ ³ª°¥ °ÍÀÌ´Ù.

ÀڷᱸÁ¶/¾Ë°í¸®Áò ÀÚü°¡ ¹è¿ö¾ßÇÒ ³»¿ëÀÌ »ó´çÈ÷ ¸¹À½À¸·Î ½Ã°£ÀÌ Á»°É¸®±ä ÇϰÚÁö¸¸ ÃÖÁ¾ÀûÀ¸·Î´Â µ¥ÀÌŸº£À̽º ±¸Á¶/±¸Çö ±îÁö¸¦ ´Ù·ç°Ô µÉ°ÍÀÌ´Ù.

°³ÀÎÀûÀÎ ¸ñÇ¥´Â ÀڷᱸÁ¶/¾Ë°í¸®ÁòÀÇ ÀÌ·Ð¹× ±¸ÇöÀ» ÃæºÐÈ÷ ´Ù·ç°í, µ¥ÀÌŸº£À̽º ±¸Á¶/±¸Çö¿¡ ´ëÇÑ ±â¼úÀ» ÀÍÇô¼­ RDBMS Á¤µµ¸¦ ±¸ÇöÇÒ¼ö ÀÖ´Â ´É·ÂÀ» °¡Áö´Â °ÍÀÌ´Ù.


2절. µ¥ÀÌŸ Ãß»óÈ­

À̹øÀå¿¡¼­´Â µ¥ÀÌŸ Ãß»óÈ­¿¡ ´ëÇÑ ³»¿ëÀ» ´Ù·é´Ù. ¼³¸íÀº À̱ÛÀ» Àд ¿©·¯ºÐÀÌ C/C++ ¿¡ Àͼ÷ÇÏ´Ù´Â °¡Á¤ÇÏ¿¡ ¾²¿©Áö°Ô µÉ°ÍÀÌ´Ù - ÁÖ·Î °³³äÀûÀÎ ¼³¸íÀÓÀ¸·Î Äڵ带 ÀÌÇØÇÒ¼ö ÀÖÀ» Á¤µµ¸¸ µÇ¸é ÃæºÐÇÏ´Ù -. µ¥ÀÌÅÍ Ãß»óÀº OOP¾ð¾î¸¦ ÅëÇØ¼­ ´õ ½±°Ô ±â¼úµÉ ¼ö ÀÖÀ¸¹Ç·Î ÀÎÇÏ¿©, ¿¹Á¦ ÄÚµå´Â C++À» ÁÖ·Î ÀÌ¿ëÇÒ °ÍÀÌ´Ù.


2.1절. Ãß»ó¿¡ ´ëÇØ¼­

º¸Åë ¿µ¾î·Î abstract¶ó°í Çϸç, Çѹ®À¸·Î´Â õÎßÚ À̶ó°í Ç¥±âµÈ´Ù. ±×·³ Ãß»óÀ̶õ ¹«¾ùÀΰ¡¿¡ ´ëÇØ¼­ ¶æÇ®À̸¦ ÇØº¸µµ·Ï ÇÏÀÚ.

¾Æ¹«·¡µµ ¿ì¸®´Â ÇÑÀÚ¹®È­±Ç¿¡ ¼ÓÇØ ÀÖ°í, Ã߻󿪽à ÇÑÀÚ¾î ÀÓÀ¸·Î õÎßÚ À» ÀÌ¿ëÇØ¼­ ±âº»ÀûÀÎ ¶æÀ» ¾Ë¾Æº¸µµ·Ï ÇϰڴÙ. õÎ ´Â "»©´Ù", "¾ø¾Ö´Ù" ÀÇ ¶æÀ» °¡Áö¸ç, ßÚ Àº "¸ð¾ç", "±×¸²", "ÇüÅÂ" ÀÇ ¶æÀ»°¡Áø´Ù. Áï "¸ð¾çÀ̳ª ÇüŰ¡ ¾ø´Â", "¸ð¾çÀ̳ª ÇüŸ¦ »« ȤÀº °¨Ãá", À̶õ ¶æÀ» º¸¿©ÁØ´Ù.

´Ù½Ã¸»Çؼ­ º¸ÀÌÁö ¾Ê´Â °ÍÀÇ ½Çü¸¦ ¶æÇÑ´Ù. º¸ÀÌÁö ¾Ê´Âµ¥ ½Çü°¡ ÀÖ´Ù´Ï.. ¹«½¼¼Ò¸®Àΰ¡. ... ±Ç·ÂÀº ´«¿¡ º¸ÀÌÁö ¾ÊÁö¸¸ »çȸ¸¦ Áö¹èÇϰí, ÆòÈ­¸¦ ³º±âµµ Çϸç ÀüÀïÀ» ÀÏÀ¸Å°±âµµÇÑ´Ù. ¼ýÀÚµµ ´«¿¡ º¸ÀÌÁö ¾ÊÁö¸¸ ¹°¸®¹ýÄ¢À» ÅëÇØ ¿ìÁÖÀÇ Áú¼­¸¦ ÀÌ·ç¾î³½´Ù. »ç¶û¿ª½Ã ´«¿¡ º¸ÀÌÁö ¾ÊÁö¸¸ ³²¿©»çÀ̸¦ °üÀåÇÑ´Ù.

±Ç·ÂÀÇ ½Çü´Â ÀúµÚ¿¡ ¼û¾î ÀÖÀ¸¸ç, ¿ì¸®´Â ±× ±Ç·ÂÀÇ °á°ú¸¦ ¸ö¼Ò üÇèÇϸ鼭 »ì°í ÀÖ´Ù. º¸ÀÌÁö ¾Ê´Â Àú µÚÀÇ ±Ç·ÂÀÌ ¾î¶»°Ô ÀÛ¿ëÇÏ´À³Ä¿¡ µû¶ó¼­ »çȸ, ±¹°¡ °³ÀÎÀÇ Èñºñ°¡ ±³Â÷ÇÑ´Ù. ´«¿¡ º¸ÀÌÁö ¾ÊÀ½À¸·Î º°°Å ¾Æ´Ï¶ó°í »ý°¢Çϰí ÀÖÁö¸¸ ½ÇÀº ´«¿¡ º¸À̴°ͺ¸´Ù ´õ Å«ÈûÀ» Çà»çÇÏ´Â°Ô ÀÌ·± Ãß»óÀûÀÎ °ÍµéÀÌ´Ù.

¼¼°èÀûÀΠöÇÐÀÚ, °úÇÐÀÚ, Á¤Ä¡°¡, °æÁ¦°¡ µéÀº ÀÌ·¯ÇÑ º¸ÀÌÁö ¾Ê´Â ½Çü¸¦ ޱ¸Çؼ­ ±× Çٽɿ¡ °ÅÀÇ ´Ù´Ù¸£°í ÀÖ´Â »ç¶÷µéÀÌ´Ù. ÀÌ·¯ÇÑ Ãß»óÈ­´Â º¸ÀÌÁö ¾Ê´Â ½Çü¿Í ±× °á°ú¸¦ ±¸ºÐ½ÃÄÑ ÁØ´Ù. ±×·³À¸·Î½á ¾ò´Â ÀÌÀÍÀ» »ý°¢ÇØ º¸ÀÚ. º¸ÅëÀÇ ÀϹÝÀεéÀº °æÁ¦°¡ ¾î¶»°Ô ±¸ÇöµÇ°í Èê·¯°¡´ÂÁö ¾ËÁö ¸øÇصµ ¼¼»óÀ» »ì¾Æ°¥¼ö ÀÖ´Ù. Á¤Ä¡, °úÇÐ, ¼öÇÐ ÀÌ·±°Íµé ¿ª½Ã ¸¶Âù°¡ÁöÀÌ´Ù. ÀÌ·± °íÈ¿À²ÀÇ »çȸ(±¹°¡)¸¦ ¸¸µé¾î ÁØ´Ù. °³Àο¡°Ô ´Ù¸¥°ÍµéÀÌ ¾î¶»°Ô ±¸ÇöµÇ´ÂÁö ½Å°æ¾µÇÊ¿ä ¾øÀÌ ÀÚ½ÅÀÇ ÀüºÐºÐ¾ß¿¡ ÁýÁßÇÒ¼ö ÀÖ°Ô ¸¸µé¾î Áֱ⠶§¹®ÀÌ´Ù.

Ãß»óÈ­°¡ ÀÌ·ç¾îÁöÁö ¾ÊÀº »çȸ¿¡¼­´Â ¼¼»óÀ» »ì¾Æ°¥°æ¿ì¸¦ »ý°¢Çغ¸ÀÚ, ¿ø½Ã ºÎÁ·»çȸ¸¦ ¿¹¸¦ µé¾îº¸ÀÚ¸é ÇϳªÀÇ °¡Á¤Àº »ì¾Æ³²±â À§Çؼ­, ¼ö·Æµµ ÇØ¾ß Çϰí, »ç³Éµµ ÇØ¾ßÇϰí, ¹çµµ Àϱ¸¾î¾ß Çϰí, Áýµµ ¸¸µé¾î¾ßÇÏ°í °¡Àçµµ±¸µµ ¼Õ¼ö ¸¸µé¾î¾ß Çϸç, ¾ÆÀÌµé ±³À°µµ Á÷Á¢ ÇØ¾ßÇÑ´Ù. ºÎÁ·³»¿¡¼­ ±¸Çϱâ Èûµç ¹°°ÇÀ» ±¸Çϱâ À§Çؼ­ ¼Õ¼ö ¹°¹°±³È¯À» ÇØ¾ßÇϱ⵵ ÇÑ´Ù. ȸÀÇ¿¡µµ ¸ö¼ÒÂü¼®ÇØ¾ß ÇÑ´Ù. ÇϳªºÎÅÍ ¿­±îÁö ¸ðµÎ ½Å°æ½áÁà¾ß ÇÑ´Ù. ±×³ª¸¶ °£´ÜÇÑ ºÎÁ·»çȸ¶ó¸é °¡´ÉÇϰÚÁö¸¸, Á¶±Ý¸¸ ±Ô¸ð°¡ Ä¿Áö¸é ÀÌÁ¤µµ°¡Áö°í´Â Èûµé¾îÁø´Ù. Áö±Ý »çȸ¸¦ »ì°í ÀÖ´Â ¿ì¸®´Â ½ÒÀÌ ¾î¶»°Ô ¸¸µé¾îÁ®¼­ ¾î¶²°æ·Î¸¦ °ÅÃļ­ ½ÒÅë±îÁö ¿À´ÂÁö ¸ô¶óµµ µÈ´Ù. ÀÌ·±°Ç ³ó»ç²Û, À¯Åë¾÷ÀÚ, °¡°ø¾÷ÀÚ µîµîÀÇ »ç¶÷µéÀÌ ÇÒÀÏÀÌ´Ù. °æÁ¦ ¼öÇÐ ´Ù¸¥ °Íµµ ¸¶Âù°¡Áö´Ù. ±×·³À¸·Î °³ÀÎÀº °³ÀÎÀÌ ÇÒÀÏ¿¡ Ãæ½ÇÈ÷ÇÏ´Â (¹°·Ð ´Ù¸¥ºÐ¾ß¿¡µµ ¾à°£ÀÇ °ü½ÉÀ» °¡Áö°í Á¢±ÙÇÏ¸é ´õ ÁÁ°ÚÁö¸¸) Á¤µµ·Îµµ º¹ÀâÇÑ »çȸ¸¦ À¯Áö½ÃÄÑ ³ª°¥¼ö ÀÖ°Ô µÈ´Ù.

ÀÌ·± Ãß»óÈ­ÀÇ ´É·ÂÀÌ¾ß ¸»·Î Àΰ£°ú µ¿¹°À» ±¸ºÐ½ÃÄÑÁÖ´Â ÁöÀû´É·ÂÀÇ »ê¹°À̶ó°í º¼¼ö ÀÖ´Ù.


2.1.1절. ±×¸²¿¡¼­ÀÇ Ãß»ó

¹Ì¼ú·Î º¸ÀÚ¸é ±¸»óÈ­ÀÇ ¹Ý´ëµÇ´Â°Ô Ãß»óÈ­Àε¥, ±¸»óÈ­°¡ ÀÖ´Â ±×´ë·Î »ç¹°À» È­ÆøÀ» ÅëÇØº¸¿©ÁÖ´Â ¹Ý¸é Ãß»óÈ­´Â È­ÆøµÚ¿¡ È­°¡ÀÇ Àǵµ¿Í ÀǽÄÀ» "°¨Ã߰ųª ÀϺκÐÀ» »ý·«Çؼ­" ³ªÅ¸³»°í ÀÖÀ½À» ¾Ë¼ö ÀÖ´Ù. °ü°´Àº È­Æø¿¡ ±×·ÁÁø ÀÌ»óÇÑ ¼±°ú »öÀÇ º¯È­¸¦ °¡Áö°í È­°¡°¡ Àü´ÞÇϰíÀÚ ÇÏ´Â ¼û°ÜÁø Àǵµ¸¦ À¯ÃßÇØ ³»¾ß¸¸ ÇÑ´Ù. ¿Ö.. È­°¡´Â ±¸»óÈ­¸¦ ÀÌ¿ëÇØ¼­ ±¸Ã¼ÀûÀ¸·Î ÀÚ½ÅÀÇ Àǵµ¸¦ °ü°´¿¡¼­ º¸¿©ÁÖÁö ¾Ê°í, ¹«¾ð°¡ ºüÁøµíÇÑ Ãß»óÈ­¸¦ ÀÌ¿ëÇØ¼­ ÀÚ½ÅÀÇ Àǵµ¸¦ º¸¿©ÁÖ·Á°í Çϴ°ÍÀϱî.

그림 1. Ãß»óÈ­ 1

그림 2. Ãß»óÈ­ 2 - ¸óµå¸®¾ÈÀÇ Broadway Boogie woogie

그림 3. Ãß»óÈ­ 3 - Ŭ¸²Æ®ÀÇ The Kiss

±¸»óÈ­ÀÇ ÀåÁ¡Àº ¸íÈ®ÇØ¼­ ÀÌÇØÇϱⰡ ½±´Ù´Â Á¡ÀÏ °ÍÀÌ´Ù. ¹Ý¸é ´ÜÁ¡Àº ÀüÇϰíÀÚ ÇÏ´Â ÇѰ¡Áö(´«¿¡º¸À̴°Í)¸¸ Àü´ÞÇÒ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. °Ô´Ù°¡ »ç¶÷ÀÇ º¯È­¹«½ÖÇÑ ±âºÐ ¼±ÇÏ°í ¾ÇÇÑ °¨Á¤, ³ª¾àÇÏ°í ¹«±â·ÂÇѵí ÇÏÁö¸¸ ¸ðµç°É ÃÊ¿ùÇÏ´Â »ç¶û.. ÀÌ·±°ÍµéÀº Ç¥ÇöÇϱⰡ ¸Å¿ì ¾Ö¸ÅÇÏ´Ù.

¹Ý¸é Ãß»óÈ­´Â óÀ½¿¡ ÀÌÇØÇϱâ´Â ¾î·ÆÁö¸¸, ±×¾ß¸»·Î ´Ù¾çÇÏ°í Æø³ÐÀº °³ÀÎÀÇ »ç»ó°ú Àǵµ¸¦ °ü°´¿¡°Ô º¸¿©ÁÙ¼ö ÀÖ´Ù. È­°¡°¡ ´É·ÂÀÌ ÁÁ´Ù¸é ½½ÇÁ±âµµ Çϸ鼭 ±â»Ú±âµµ ÇÑ ¸¶À½ÀÇ »óŸ¦ È­Æø¿¡ ´ã¾Æ¼­ Ç¥ÇöÇÒ¼ö ÀÖÀ¸¸ç, °ü°´Àº ¼öÁظ¸ µÈ´Ù¸é ÇϳªÀÇ ±×¸²À» ÅëÇØ¼­ ´Ù¾çÇÑ °æÇèÀ» ÇÒ¼ö ÀÖ°Ô µÈ´Ù. ÀÌ·¯ÇÑ °ÍÀº È­°¡°¡ ÀÚ½ÅÀÇ Àǵµ¸¦ È­ÆøµÚ¿¡ ¼û±â±â(Ãß»óÈ­) ¶§¹®¿¡ °¡´ÉÇØÁø´Ù.


2.1.2절. ÇÁ·Î±×·¡¹Ö ¿¡¼­ÀÇ Ãß»ó

ÇÁ·Î±×·¡¹Ö¿¡¼­ÀÇ Ãß»ó ¿ª½Ã ±×¸²¿¡¼­ÀÇ Ãß»ó°ú ºñ½ÁÇÑ Àǹ̸¦ °¡Áø´Ù. Ãß»ó±×¸²(Ãß»óÈ­¶ó°í Çϸé Çò°¥¸±°Í °°¾Æ¼­ Ãß»ó±×¸² À̶ó°í Ç¥ÇöÇÔ)¿¡¼­ ´Ù¾çÇÑ ÀÛ°¡ÀÇ Àǵµ¸¦ Ç¥ÇöÇϱâ À§Çؼ­ È­ÆøµÚ¿¡ ÀÛ°¡ÀÇ ½ÇÁ¦Àǵµ¸¦ ¼û°å´Âµ¥, ÇÁ·Î±×·¡¹Ö¿¡¼­ÀÇ Ãß»óÈ­µµ ¿ª½Ã ÀÌ·¯ÇÑ ¸ñÀûÀ¸·Î ¸¸µé¾îÁø °³³äÀÌ´Ù.

±×¸²¿¡¼­ È­°¡°¡ ¼û±â°íÀÚ ÇÏ´Â °ÍÀº È­°¡ÀÇ Àǵµ¿´´Ù. ÇÁ·Î±×·¡¹Ö¿¡¼­ ¼û±â°íÀÚ Çϴ°ÍÀº ¹«¾ùÀϱî ? ±¸Çö ÀÌ´Ù. È­°¡´Â ÀÚ½ÅÀÇ Àǵµ¸¦ È­ÆøµÚ¿¡ ¼û°å´Ù. ÇÁ·Î±×·¡¹Ö¿¡¼­´Â ±¸ÇöÀ» class(Ada ¶ó¸é package) µÚ¿¡ ¼û±ä´Ù.

¹°·Ð ±×¸²¿¡¼­ÀÇ Ãß»ó°ú ÇÁ·Î±×·¡¹Ö¿¡¼­ÀÇ Ãß»óÀÌ ¿ÏÀüÈ÷ µ¿ÀÏÇÑ°Ç ¾Æ´Ï´Ù. ¸ñÀûÀÌ ¾à°£ ´Ù¸¥µ¥, ±×¸²¿¡¼­ÀÇ Ãß»óÀº(È­ÆøµÚ¿¡ ÀǽÄÀ» ¼û±è) Àº °ü°´¿¡°Ô ´Ù¾çÇÑ »ç°íÀÇ °æÇèÀ» ÇÏ°Ô Çϱâ À§ÇÑ °ÍÀ̰í, ÇÁ·Î±×·¡¹Ö¿¡¼­ÀÇ Ãß»óÈ­´Â class °³¹ßÀÚ°¡ ±¸ÇöÀ» Ŭ·¡½º µÚ¿¡ (Ãß»óÈ­)¼û±â°Ô µÊÀ¸·Î class »ç¿ëÀÚ(¿ª½Ã °³¹ßÀÚÀÌÁö¸¸)´Â ±¸ÇöÀÌ ¾î¶»°Ô µÇ¾îÀÖ´ÂÁö ½Å°æ¾²Áö ¾Ê°í class ÀÇ ±â´ÉÀ» ÀÌ¿ëÇÏ°Ô Çϵµ·Ï Çϱâ À§ÇÔÀÌ´Ù.

Ãß»óÀº OOP ÀÇ ÇÙ½ÉÀ̸ç, ÃÖ±Ù¹ßÇ¥µÇ´Â ¾ð¾îµéÀº ¿©·¯°¡Áö ÇüÅ·ΠÃß»óÀ» Áö¿øÇÑ´Ù. C ÀÇ °æ¿ì´Â Á÷Á¢ÀûÀ¸·Î Ãß»óÀ» Áö¿øÇÏÁö ¾ÊÁö¸¸ Ãß»óÀ» Áö¿øÇϴ°Íó·³ »ç¿ëÇÒ¼ö´Â ÀÖ´Ù.


2.2절. ADT(Abstracte Data Type) - µ¥ÀÌŸÀÇ Ãß»ó -

ÀÌ»ó Ãß»ó¿¡ ´ëÇØ¼­ ÀÌ·±Àú·± Àâ´ÙÇÑ ¾ê±â¸¦ ´Ã¾î ³õÀº°ÍÀº Ãß»ó µ¥ÀÌŸ ŸÀÔ(ADT)¿¡ ´ëÇÑ ¼³¸íÀ» À§Çؼ­¿´´Ù.

Ãß»ó µ¥ÀÌŸ ŸÀÔ¿ª½Ã ÇÁ·Î±×·¡¹Ö¿¡¼­ÀÇ Ãß»ó°ú ¸¶Âù°¡Áö·Î ±¸Çö°ú »ç¿ëÀ» (±¸ÇöÀ» ¼û±èÀ¸·Î½á)ºÐ¸®½Ã۱â À§Çؼ­ »ç¿ëÇÏ´Â °³³äÀÌ´Ù. À̶§ ¼û°ÜÁö´Â ±¸ÇöÀÌ ÀڷᱸÁ¶¸¦ À§ÇÑ °ÍÀ̸é Ãß»ó µ¥ÀÌŸ ŸÀÔÀÌµÇ ´Â °ÍÀÌ´Ù.

°£´ÜÇÑ ¿¹¸¦ µé¾î º¸µµ·Ï ÇÏÀÚ. ¸¸¾à ¿©·¯ºÐÀÌ stack ÀڷᱸÁ¶¸¦ ADT ¸¦ ÅëÇØ¼­ ±¸ÇöÇØ¾ß ÇÑ´Ù°í ÇßÀ»¶§, ´ÙÀ½°ú °°ÀÌ class ¸¦ ÅëÇØ¼­ ADT ¸¦ Á¤ÀÇ ÇÒ¼ö ÀÖÀ» °ÍÀÌ´Ù.

¿¹Á¦ : stack_adt.cc

#include <iostream.h>
#define MAX_ELE_NUM 256

using namespace std;

// Stack Class
class Stack
{
    private:
        int element_num;
        int mystack[MAX_ELE_NUM];
    public:
        Stack();
        int push_back(int);
        int get_back();
        int size();
};

// »ý¼ºÀÚ
Stack::Stack()
{
    element_num = 0;
    memset(mystack, 0x00, sizeof(int)*MAX_ELE_NUM);
}

// µ¥ÀÌŸ ÀÔ·Â
int Stack::push_back(int data)
{
    if (element_num > (MAX_ELE_NUM))
    {
        return -1;
    }
    mystack[element_num] = data;
    element_num++;

    return 1;
}

// µ¥ÀÌŸ °¡Á®¿À±â
int Stack::get_back()
{
    element_num--;
    return mystack[element_num];
}

// °¡Áö°í ÀÖ´Â µ¥ÀÌŸÀÇ °¹¼ö 
int Stack::size()
{
    return element_num;
}

int main()
{
    int i;
    Stack *mystack;
    int size;

    mystack = new Stack;
    mystack->push_back(1);
    mystack->push_back(2);
    mystack->push_back(3);
    mystack->push_back(4);

    size = mystack->size();
    for(i = 0; i < size; i++)
    {
        cout << mystack->get_back() << endl;
    }
}
			
ÀÌ·¸°Ô ADT ¸¦ ÀÌ¿ëÇØ¼­ ÀڷḦ Ãß»óÈ­ ÇÒ°æ¿ì ¾òÀ»¼ö ÀÖ´Â ÀÌÀÍ¿¡ ´ëÇØ »ý°¢Çغ¸ÀÚ. À§ÀÇ Stack class ¸¦ ¶óÀ̺귯¸®È­ ÇØ¼­ °ü¸®ÇÒ°æ¿ì Ŭ·¡½º »ç¿ëÀÚ´Â stack ÀڷᱸÁ¶¸¦ ¾î¶»°Ô ±¸ÇöÇØ¾ß ÇÏ´ÂÁö ½Å°æ¾µÇÊ¿ä¾øÀÌ ÀÚ½ÅÀÇ °³¹ß¿¡¸¸ Àü³äÇÒ¼ö ÀÖ´Ù. class °³¹ß ÀÚ°¡ get_back() ÇÔ¼ö¿¡ ¹®Á¦°¡ »ý°Ü¼­ À̰ÍÀ» ¹Ù²Ü°æ¿ì°¡ »ý±â´õ¶óµµ (Àμö³ª ¸®ÅϰªÀÌ ¹Ù²îÁö ¾Ê´ÂÇÑ) class »ç¿ëÀÚ´Â ¿©±â¿¡ ´ëÇØ¼­ ÀüÇô ½Å°æ¾µ Çʿ䰡 ¾ø´Ù. class »ç¿ëÀÚ°¡ class »ç¿ëÁß ¹ö±×¸¦ »ç¿ëÇß´Ù¸é, ÇØ´ç¹®Á¦¸¸ °³¹ßÀÚ¿¡°Ô ¾Ë·Á ÁÖ°í ÀÚ½ÅÀº ÀÛ¾÷À» °è¼ÓÇÏ¸é µÈ´Ù. ÀüüÀûÀ¸·Î °³¹ß¼Óµµ°¡ »¡¶óÁú°ÍÀ̸ç, À¯Áöº¸¼ö ¿ª½Ã ¼ö¿ùÇØ Áú°ÍÀÌ´Ù.

À§ÀÇ ÄÚµåÀÇ °æ¿ì c++ À» ÀÌ¿ëÇߴµ¥, ±âº»ÀûÀ¸·Î class ¸¦ ÀÌ¿ëÇÒ °æ¿ì ½±°Ô ADT ¸¦ Á¤ÀÇÇÒ¼ö Àֱ⠶§¹®À¸·Î °³³ä¼³¸í¿¡ ÀûÇÕÇϱ⠶§¹®ÀÌ´Ù (class ÀÚü¸¦ ADT¶ó°í º¼¼ö ÀÖ´Ù). ¹°·Ð ADT ´Â °³³äÀÓÀ¸·Î ¾à°£´õ ½Å°æ½áÁÖ¸é C ·Îµµ ¾î·ÆÁö ¾Ê°Ô Á¤ÀÇ ÇÒ¼ö ÀÖ´Ù.

À§ÀÇ ÄÚµå´Â int ÀڷḸÀ» stack ¿¡ ÀÔ·ÂÇÒ¼ö Àִµ¥, c++ ÀÇ ´ÙÇü¼ºÀ» ÀÌ¿ëÇÏ¸é ´Ù¸¥ ÀÚ·áÇüÀ¸·Îµµ ½±°Ô È®Àå °¡´ÉÇÒ°ÍÀÌ´Ù. ¸¸¾à Template ¸¦ »ç¿ëÇÒ°æ¿ì °ÅÀÇ ´ëºÎºÐÀÇ ÀÚ·áÇü¿¡ ´ëÇÑ ÀÔ/Ãâ·ÂÀÌ °¡´ÉÇÒ°ÍÀÌ´Ù. Template ¿¡ ´ëÇÑ ³»¿ëÀº stl(1)-STL °³¿ä¿¡¼­ (ºñ·Ï °£´ÜÇÏÁö¸¸)´Ù·ç°í ÀÖÀ½À¸·Î ÂüÁ¶Çϱ⠹ٶõ´Ù.


3절. °á·Ð

º»·ÐÀÎ ADT ¸¦ ´Ù·ç±â Àü¿¡ Ãß»óÀÇ °³³ä¿¡ ´ëÇØ¼­ ²Ï ¸¹Àº ³»¿ëÀ» ´Ù·ç¾ú´Âµ¥, ÀÌ´Â Çö´ë ÇÁ·Î±×·¡¹Ö¿¡ À־ Ãß»óÀÌ ´ë´ÜÈ÷ Áß¿äÇÑ ÁÖÁ¦ÀÓ¿¡µµ ºÒ±¸ÇÏ°í °³³äÀûÀÎ ÀÌÇØ°¡ ºÎÁ·ÇÑ °æ¿ì¸¦ ÀÚÁÖ º¸¾Æ¿Ô±â ¶§¹®ÀÌ´Ù. Ãß»óÀÇ °³³äÀ» Á¦´ë·Î ÀÌÇØÇϰí ÀÖÀ¸¸é Çö´ë ÇÁ·Î±×·¡¹ÖÀÇ Áٱ⸦ ÀÌÇØÇϱⰡ Á»´õ ½¬¿öÁø´Ù.

ÀڷᱸÁ¶¿¡ µé¾î°¡±âÀü¿¡ ¾Õ¼­ ADT¸¦ ´Ù·é ÀÌÀ¯´Â ¾ÕÀ¸·Î ÀڷᱸÁ¶¸¦ ±¸ÇöÇÔ¿¡ À־ ADT ¸¦ Á¤ÀÇÇØ¼­ ±¸ÇöÇÒ ¿¹Á¤À̱⠶§¹®ÀÌ´Ù. ÀÌ ¹®¼­¿¡¼­´Â ADT ÀÇ °³³äÀ» c++ À» ÅëÇØ¼­ ±¸ÇöÇߴµ¥, ¸Ó¸®µµ ½ÄÈú°â c ·Îµµ Çѹø ±¸ÇöÇØ º¸±â ¹Ù¶õ´Ù. ±×·¡µµ ½Ã°£ÀÌ ³²´Â´Ù¸é ÅÛÇø´¹öÁ¯µµ ¿¬½À»ï¾Æ ¸¸µé¾î º¸±â ¹Ù¶õ´Ù.


Cache Error
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.