Å¥ ÀÚ·áÃß»ó
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®
ÇöÀçÀ§Ä¡ : docbook>Å¥_ÀÚ·áÃß»ó



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

<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> 
<article lang="ko"> 
 
<!--           --> 
<!-- ¹®¼­ Á¤º¸ --> 
<!--           --> 
<articleinfo> 
    <title>Å¥ ÀÚ·áÃß»ó</title> 
 
    <author> 
        <surname>À± »ó¹è</surname> 
 
        <affiliation> 
            <address> 
                <email>dreamyun@yahoo.co.kr</email> 
            </address> 
        </affiliation> 
    </author> 
    <revhistory> 
        <revision> 
            <revnumber>0.8</revnumber> 
            <date>2003³â 3¿ù 21ÀÏ 20½Ã</date> 
            <revremark>ÃÖÃÊ ¹®¼­ÀÛ¼º</revremark> 
        </revision> 
    </revhistory> 
</articleinfo> 
 
 
<!--                                                                 --> 
<!-- ¼½¼Ç ½ÃÀÛ                                                       --> 
<!--                                                                 --> 
<section> 
    <title>¼Ò°³</title> 
    <para> 
        Áö³­¹øÀÇ Stack ÀڷᱸÁ¶¿¡ À̾ À̹ø¿¡´Â  
        Queue(ÀÌÇÏ Å¥) ÀڷᱸÁ¶¿¡ Å¥ ÀÚ·áÃß»ó ¿¡ ´ëÇØ¼­  
        ¾Ë¾Æº¸µµ·Ï ÇϰڴÙ. ¶Ç´Ù¸¥ ÀüÇô´Ù¸¥ ÀڷᱸÁ¶¶ó°í  
        º¼¼ö ÀÖ´Â Stack(ÀÌÇÏ ½ºÅÃ)°ú ÀÚÁÖ ºñ±³µÉ °ÍÀÌ´Ù.   
        ½ºÅÿ¡ ´ëÇÑ ³»¿ëÀº <ulink url=http://www.joinc.co.kr/modules.php?name=News&file=article&sid=108>ÀڷᱸÁ¶ 2 - stack</ulink>À» Âü°íÇ챉  
        ¹Ù¶õ´Ù.  
    </para> 
</section> 
<section> 
    <title>Å¥ µ¥ÀÌŸ Ãß»ó</title> 
    <section>     
        <title>Å¥¿¡ ´ëÇØ¼­</title> 
        <para> 
            Å¥´Â Áö³­¹ø¿¡ ¹è¿ü´ø Stack °ú Á¾Á¾ ºñ±³µÇ°ï ÇÑ´Ù.  
            Stack ÀÌ ÈÄÀÔ¼±Ãâ(LILO - Last In Last Out)ÀÇ ÀÚ·á ÀÔÃâ·Â  
            ±¸Á¶¸¦ °¡Áö´Â°Í¿¡ ºñÇØ,   
            Å¥´Â ¼±ÀÔ¼±Ãâ(FIFO - First In First Out)ÀÇ ÀÚ·á ±¸Á¶¸¦ °¡Áø´Ù.  
            ÇѸ¶µð·Î °¡Àå ¸ÕÀú ÀÔ·ÂµÈ µ¥ÀÌŸ°¡ °¡Àå ¸ÕÀú Ãâ·ÂµÇ´Â ÀڷᱸÁ¶´Ù.   
            <figure> 
                <title>Queue(Å¥) ÀڷᱸÁ¶¿¡¼­ÀÇ ÀÔ·Â/Ãâ·Â </title> 
                <graphic fileref=http://www.joinc.co.kr/albums/album01/acc.gif> 
            </figure> 
            À§ÀÇ ±×¸²À» º¸¸é Å¥ÀڷᱸÁ¶¸¦ ½±°Ô ÀÌÇØÇÒ¼ö ÀÖÀ»°ÍÀÌ´Ù.  
        </para> 
        <para> 
            ÀÌ·¯ÇÑ Å¥ ÀڷᱸÁ¶´Â º¸Åë ¿ì¸®ÀÇ »ýȰ¿¡¼­´Â ¸Å¿ì ÀÏ»óÀûÀÎ ÀڷᱸÁ¶  
            ÀÌ´Ù. Å¥ ÀڷᱸÁ¶ÀÇ ÇüŸ¦ °¡Àå ÈçÈ÷ º¼¼ö ÀÖ´Â°Ô "ÁÙ¼­±â" °¡  
            µÉ°ÍÀÌ´Ù. ÀºÇà ⱸ¿¡¼­ ÁÙÀ» ¼­°Å³ª, ¹ö½º¸¦ ±â´Ù¸®±â À§Çؼ­  
            ÁÙÀ» ¼³°æ¿ì °¡Àå ¸ÕÀú ÁÙÀ» ¼± »ç¶÷ÀÌ °¡Àå ¸ÕÀú, ÀºÇà¾÷¹«¸¦  
            ó¸®Çϰųª, ¹ö½º¸¦ Ÿ°Ô µÈ´Ù(»õÄ¡±â ÇÏ´Â °æ¿ì´Â »ý°¢ÇÏÁö ¸»ÀÚ).      
        </para> 
        <para> 
            ÀÌ·± ½ÄÀ¸·Î ½ÇÁ¦ ¿ì¸®°¡ »çȸ»ýȰÀ» Çϸ鼭 ¹Þ°Ô µÇ´Â ´ëºÎºÐÀÇ  
            ¼­ºñ½ºµéÀº Å¥ ÀڷᱸÁ¶ ÇüÅ·ΠÀÌ·ç¾îÁö°Ô µÈ´Ù.  
        </para> 
        <para> 
            ±×·¸´Ù¸é ½ºÅðú ºñ±³Çؼ­ ÄÄÇ»ÅÍ ÇÁ·Î±×·¡¹Ö½Ã¿¡ ÀÚÁÖ »ç¿ëµÇ´Â  
            ÀڷᱸÁ¶´Â ¹«¾ùÀ̶ó°í »ý°¢µÇ´Â°¡ ?  
            ¹°·Ð Å¥µµ ÀÚÁÖ »ç¿ëµÇ±ä ÇÏÁö¸¸, Àç±ÍÀû È£Ãâ°úÀÇ ¿¬±¤¼º ¶§¹®¿¡  
            º¸ÅëÀº ½ºÅÃÀÌ ´õ¿í À¯¿ëÇÏ°Ô »ç¿ëµÈ´Ù.  
            ¹ÙÀ̳ʸ® Æ®¸®¸¦ ¼øÈ¯ÇϰíÀÚ ÇÒ¶§, ȤÀº  
            ¼­ºêµð·ºÅ丮¸¦ Æ÷ÇÔÇÑ µð·ºÅ丮¸¦ °Ë»öÇϰíÀÚ ÇÏ´Â °æ¿ì  
            º¸Åë ½ºÅÃÀ» »ç¿ëÇÏ°Ô µÈ´Ù.  
        </para> 
        <para> 
            ½ºÅÃÀÇ ¶Ç´Ù¸¥ »ç¿ëó¶ó¸é ÀÎÅÍ·´Æ®°¡ °É·ÈÀ»°æ¿ì°¡  
            µÉ°ÍÀÌ´Ù. °£´ÜÈ÷ ¿¹¸¦ µé¾î¼­  
            ¿ì¸®°¡ û¼Ò¸¦ Çϰí Àִµ¥, ÀüÈ­º§ÀÌ ¿ï¸®¸é(ÀÎÅÍ·¾Æ®°¡ ¹ß»ý)  
            û¼Ò¸¦ Áß´ÜÇϰí ÀüÈ­¸¦ ¹Þ°Ô µÈ´Ù. ÀüÈ­¸¦ ¹Þ´Â µµÁß¿¡  
            ÃÊÀÎÁ¾ÀÌ ¿ï¸®¸é ¿ì¸®´Â »ó´ë¹æ¿¡°Ô Àá½Ã ±â´Þ·Á ´Þ¶ó°í Ç졒  
            ´©°¡ ¹æ¹®Çß´ÂÁö È®ÀÎÇÑ´ÙÀ½ ´Ù½Ã ÀüÈ­¸¦ ¹Þ¾Æ¼­ ÅëÈ­¸¦ ³¡³»°í  
            ´Ù½Ã û¼Ò¸¦ ÇÏ°Ô µÈ´Ù.  
            »ç°ÇÀÇ ¹ß»ý¼ø¼­·Î º¸ÀÚ¸é û¼Ò°¡ °¡Àå¸ÕÀú°í ÃÊÀÎÁ¾¿ï¸°°Ô  
            °¡Àå ³ªÁß¿£µ¥, ó¸® ¼ø¼­´Â ÃÊÀÎÁ¾¿¡ ´ëÇÑ Ã³¸®°¡ °¡Àå ¸ÕÀúÀÌ°í ´ÙÀ½ÀÌ  
            ÀüÈ­ ´ÙÀ½ÀÌ Ã»¼Ò°¡ µÈ´Ù.  ¸Å¿ì ÀüÇüÀûÀÎ ½ºÅÃÀÇ ¿¹ÀÌ´Ù.    
        </para> 
        <para> 
            ÀÌ¿Í ºñ½ÁÇÏ°Ô ÇÁ·Î±×·¡¹Ö¿¡¼­ÀÇ ÀÎÅÍ·´Æ® ó¸® ¿ª½Ã  
            ½ºÅà ±¸Á¶¸¦ °¡Áö°Ô µÈ´Ù. A ¶ó´Â ÀÛ¾÷À» Çϰí Àִµ¥,  
            ¸¸¾à ½Ã±×³ÎÀ» ÅëÇÑ ÀÎÅÍ·´Æ®°¡ ¹ß»ýµÇ¸é, ½Ã±×³Î Çڵ鷯°¡  
            È£ÃâµÇ°í, Çڵ鷯°¡ Á¾·áµÈ´ÙÀ½ ´Ù½Ã A·Î µ¹¾Æ°¡¼­ ÀÛ¾÷À» ÇÏ´Â ½ÄÀÌ´Ù.  
            ¾ö¹ÐÈ÷ µûÁöÀÚ¸é ÇÁ·Î±×·¡¹Ö ÀÚü°¡ ½ºÅÃÀÇ ±¸Á¶¸¦ °¡Áø´Ù.  
            ÃÖÃÊ¿¡ main ÇÔ¼ö¸¦ È£ÃâÇÏ°í µµÁß¿¡ A ¶ó´Â ÇÔ¼ö¸¦ È£ÃâÇÏ°Ô µÇ¸é  
            A ÇÔ¼ö·Î ÀÛ¾÷À» µé¾î°¡°Ô µÈ´Ù. ´Ù½Ã A ¿¡¼­ B ¶ó´Â ÇÔ¼ö¸¦ È£ÃâÇÏ¸é  
            B ÇÔ¼ö·Î µé¾î°¡¼­ ÀÛ¾÷À» ÇÏ°Ô µÇ°í, ¸®ÅÏÇÏ¸é ´Ù½Ã A ·Î, A¿¡¼­ ¸®ÅÏÇÏ¸é  
            ´Ù½Ã main ÇÔ¼ö·Î µé¾î°¡´Â ÀüÇüÀûÀÎ ½ºÅÃÀڷᱸÁ¶ÀÇ ÇüŸ¦ Áö´Ñ´Ù.   
        </para> 
        <para> 
            ±×·¸´Ù¸é ¿ì¸®°¡ °ü½ÉÀÖ¾îÇϴ ťÀÇ °æ¿ì ¾î¶²¶§ À¯¿ëÇÏ°Ô  
            »ç¿ëÇÒ¼ö ÀÖÀ»Áö »ý°¢Çغ¸ÀÚ. °¡Àå °£´ÜÇÏ°Ô »ý°¢ÇÒ¼ö ÀÖ´Â °ÍÀº  
            <emphasis>µ¥ÀÌŸÀÇ È帧</emphasis>À» ó¸®ÇÏ´Â °æ¿ì°¡ µÉ°ÍÀÌ´Ù. µ¥ÀÌŸ´Â ¸ÕÀúµé¾î¿Â°É  
            ¸ÕÀú ó¸®ÇÏ´Â°Ô ÀϹÝÀûÀÎ ¼ø¼­ÀÌ´Ù. ÀÌ·± µ¥ÀÌŸÀÇ È帧À» ó¸®Ç챉  
            À§Çؼ­ Å¥¸¦ ÀÀ¿ëÇÏ´Â °¡Àå ´ëÇ¥ÀûÀÎ °æ¿ì°¡ ¹Ù·Î ¹öÆÛ(Buffer)ÀÇ »ç¿ëÀÌ  
            µÉ°ÍÀ̸ç, °ÅÀÇ 100% Å¥´Â ¹öÆÛ¸¦ ±¸ÇöÇϴµ¥ »ç¿ëµÇ´Â ÀڷᱸÁ¶¶ó°í ºÁµµ µÈ´Ù.  
        </para> 
        <para> 
            ÇÁ·Î±×·¡¹Ö Çϸ鼭 "Å¥"¸¦ ½á¾ß ÇÑ´Ù¶ó°í Çϸé, À̸»Àº °ð "¹öÆÛ"¸¦ »ç¿ëÇØ¾ß  
            ÇÑ´Ù´Â ¸»·Î ÅëÇÒÁ¤µµ·Î Å¥¿Í ¹öÆÛ´Â ¶¿·¡¾ß ¶¿¼ö ¾ø´Â °ü°èÀÌ´Ù.  
        </para> 
    </section> 
    <section> 
        <title>Å¥ÀÇ ±¸Çö</title> 
        <para> 
            À§¿¡¼­ ¸»ÇßµíÀÌ Å¥´Â ¹öÆÛ¸¦ ¸¸µé¶§ °¡Àå ÈçÇÏ°Ô »ç¿ëµÇ´Â ÀڷᱸÁ¶ÀÌ´Ù.  
            ÇÁ·Î±×·¡¹Ö½Ã ¹öÆÛ°¡ »ç¿ëµÇ´Â °æ¿ì´Â º¸Åë ¿ÏÃæ¿µ¿ªÀ» µÎ¾î¼­,  
            ÇÁ·Î±×·¥ÀÇ ¾ÈÁ¤¼ºÀ» ³ôÀ̱â À§ÇÑ ¿ëµµ ÀÌ´Ù.  
        </para> 
        <para> 
            ¿¹¸¦ µé¾î ³×Æ®¿÷¿¡¼­ ¾î¶² ¸Þ½ÃÁö¸¦ ¹Þ¾Æ¼­ ó¸®ÇÏ´Â ÇÁ·Î±×·¥ÀÌ ÀÖ´Ù°í  
            °¡Á¤ÇØ º¸ÀÚ. ÀÌ·± ÇÁ·Î±×·¥Àº º¸Åë ³×Æ®¿÷¿¡¼­ ¸Þ½ÃÁö¸¦ ¹Þ¾ÆµéÀÌ´Â ºÎºÐ°ú  
            ¸Þ½ÃÁö¸¦ ó¸®ÇÏ´Â ºÎºÐÀ¸·Î ³ª´µ°Ô µÉ°ÍÀÌ´Ù.  
            ±×·±µ¥ µÑ»çÀÌ¿¡ ¸Þ½ÃÁö¸¦ ó¸®ÇÒ¼ö ÀÖ´Â ¾ç¿¡ À־ Â÷À̰¡ ÀÖÀ»¼ö ÀÖÀ» °ÍÀÌ´Ù.  
            ¸Þ½ÃÁö¸¦ ó¸®ÇÏ´Â ·çƾÀÌ ÃÊ´ç 1000°ÇÀÇ ¸Þ½ÃÁö¸¦ ó¸®ÇÒ¼ö ÀÖ´Ù°í °¡Á¤À» ÇÏÀÚ.  
            ÀÌ 1000°ÇÀÇ ¸Þ½ÃÁö¸¦ ó¸®ÇÏ´Â ´É·ÂÀº ¸Å¿ì ¶Ù¾î³ª´Ù°í ÇÒ¼ö ÀÖÁö¸¸,  
            ¶§¶§·Î ³×Æ®¿÷À» ÅëÇØ¼­ 1000°Ç ÀÌ»óÀÇ ¸Þ½ÃÁö°¡ Àü´ÞµÉ¶§µµ ÀÖÀ»°ÍÀÌ´Ù.  
            ÀÌ·²°æ¿ì ÀÌ ¸Þ½ÃÁö ó¸® ÇÁ·Î±×·¥»Ó¸¸ ¾Æ´Ï¶ó, ÀÌ ÇÁ·Î±×·¥ÀÌ ¼ÓÇØÀÖ´Â  
            ½Ã½ºÅÛ¸ðµÎ¿¡°Ô ¿µÇâÀ» ¹Ì°Ô µÉ°ÍÀÌ´Ù.  
            ÀÌ·²°æ¿ì Å¥¸¦ ÀÌ¿ëÇØ¼­ ¹öÆÛ¸¦ ¸¸µé°Ô µÇ¸é, 1000°Ç ÀÌ»óÀÇ ¸¹Àº µ¥ÀÌŸ°¡  
            ¹ß»ýÇÒ¶§´Â ¹öÆÛ¿¡ ½×ÀÌ´Ù°¡, ¸Þ½ÃÁö°¡ Àû°Ô µé¾î¿À¸é ¹öÆÛ¿¡ ÀÖ´Â µ¥ÀÌŸ¸¦  
            ¸ðµÎ ó¸®ÇØ ³¾¼ö ÀÖÀ»°ÍÀÌ´Ù. ÀÌ·¸°Ô µÊÀ¸·Î½á ÇϳªÀÇ ÇÁ·Î±×·¥ÀÇ ¼º´ÉÀúÇÏ·Î  
            ÀÎÇØ¼­ Àüü ½Ã½ºÅÛÀÇ ¼º´ÉÀÌ ÀúÇϵǴ ¹®Á¦¸¦ ¾î´ÀÁ¤µµ ÇØ°á°¡´ÉÇÒ °ÍÀÌ´Ù.   
        </para> 
        <section> 
            <title>Å¥ µ¥ÀÌŸÃß»óÀ» À§Çؼ­ ±â¼úµÇ¾î¾ßÇÒ ÇØµ¿</title> 
            <para> 
                Çൿ´ë½Å ¸Þ¼­µå¶ó°í ÇØµµ °ü°è´Â ¾ø´Ù. µ¥ÀÌŸ Ãß»óÀº 
                ÇÁ·Î±×·¡¸Ó(Ŭ·¡½º »ç¿ëÀÚ)¿¡°Ô ³»ºÎ±¸ÇöÀº ¼û±â´Â°É ±âº»¿øÄ¢À¸·Î  
                ÇÑ´Ù. ±×·³À¸·Î °¡´ÉÇÑÇÑ ÇÁ·Î±×·¡¸Ó°¡ ³»ºÎ±¸Çö¿¡ ½Å°æ¾µÀÏÀÌ ¾øµµ·Ï  
                ÇÊ¿äÇÑ ¸Þ¼­µå¸¦ Á¦°øÇØÁÙ¼ö ÀÖ¾î¾ß ÇÑ´Ù.  
                ´ÙÀ½Àº Å¥ µ¥ÀÌŸÃß»óÀ» À§Çؼ­ ±âº»ÀûÀ¸·Î Á¦°øµÇ¾î¾ßÇÒ ¸Þ¼­µå¿Í  
                °¢ ¸Þ¼­µå°¡ ¼û±â°íÀÖ´Â(Ãß»óÈ­Çϰí ÀÖ´Â) ±¸Çöµé¿¡ ´ëÇÑ ¼³¸íÀÌ´Ù.   
                <table> 
                    <title>Å¥ µ¥ÀÌŸ Ãß»óÀ» À§ÇÑ Á¦°ø ¸Þ¼­µå</title> 
                    <tgroup cols=2>  
                    <tbody> 
                        <row> 
                            <entry>Queue</entry> 
                            <entry>»ý¼ºÀÚ·Î ÁöÁ¤µÈ Å©±â¸¸Å­ Å¥°ø°£À» ÇÒ´çÇÑ´Ù</entry> 
                        </row> 
                        <row> 
                            <entry>~Queue</entry> 
                            <entry>¼Ò¸êÀÚ·Î ÇÒ´çµÈ Å¥°ø°£À» ÇØÁ¦(free)ÇÑ´Ù.</entry> 
                        </row> 
                        <row> 
                            <entry>push_back</entry> 
                            <entry>µ¥ÀÌŸ¸¦ ÀÔ·ÂÇÑ´Ù. ¸¸¾à capacity ¸¦ ÃʰúÇÏ°Ô µÉ°æ¿ì realloc ÇÑ´Ù.</entry> 
                        </row> 
                        <row> 
                            <entry>pop</entry> 
                            <entry>°¡Àå ÃÖ±Ùµ¥ÀÌŸ¸¦ °¡Á®¿À°í, °¡Á®¿Âµ¥ÀÌŸ´Â Å¥¿¡¼­ »èÁ¦ÇÑ´Ù.</entry> 
                        </row> 
                        <row> 
                            <entry>size</entry> 
                            <entry>ÇöÀç Å¥¿¡ ÀúÀåµÈ µ¥ÀÌŸÀÇ °¹¼ö¸¦ ¾ò¾î³½´Ù.</entry> 
                        </row> 
                        <row> 
                            <entry>capacity</entry> 
                            <entry>ÇöÀç Å¥¸¦ À§ÇØ ÇÒ´çµÈ ¿ë·®(¸Þ¸ð¸®Å©±â)¸¦ ¾ò¾î³½´Ù.</entry> 
                        </row> 
                        <row> 
                            <entry>clear</entry> 
                            <entry>Å¥¿¡ ÀÖ´Â ¸ðµç ¿ø¼Ò¸¦ »èÁ¦ÇÑ´Ù.</entry> 
                        </row> 
                    </tbody> 
                    </tgroup> 
                </table> 
            </para> 
        </section> 
        <section> 
            <title>±¸Çö ¿¹ - circular queue</title> 
            <para> 
                Å¥¸¦ ±¸ÇöÇÏ´Â °¡Àå ÀϹÝÀûÀÎ ¹æ¹ýÀº ½ºÅðú ¸¶Âù°¡Áö·Î ¹è¿­À» ÀÌ¿ëÇÏ´Â  
                ¹æ¹ýÀÌ´Ù. ±×·¯³ª ´Ü¼ø¹è¿­·Î ÇÒ°æ¿ì ¹è¿­ÀÇ Å©±â°¡ ÁöÁ¤µÇ¾î ÀÖ´Â »óÅ¿¡¼­  
                µ¥ÀÌŸ°¡ °è¼Ó Ãß°¡µÇ°Ô µÇ¸é ¾î´À ½ÃÁ¡¿¡¼­ overflow °¡ ¹ß»ýÇÏ°Ô µÊÀ¸·Î  
                µ¥ÀÌŸ°¡ ¹è¿­ÀÇ Å©±â¸¦ ÃʰúÇÏ°Ô µÇ¸é, ÃʰúµÈ µ¥ÀÌŸ´Â 0¹øÂ° ¹è¿­·Î µé¾î°¡°Ô  
                ÇØ¾ß ÇÑ´Ù. ÀÌ·¯ÇÑ ±¸Á¶°¡ ȯÇü±¸Á¶¿Í °°´Ù°í ÇØ¼­ º¸Åë ȯÇüÅ¥(circular queue)  
                ¶ó°í ÇÑ´Ù.    
            </para> 
            <para> 
                ¿ì¸®´Â circular queue ¸¦ ÀÌ¿ëÇØ¼ö Å¥ÀÚ·áÃß»ó(ADT)¸¦ ¸¸µé°í À̰ÍÀ»  
                Å×½ºÆ® ÇÒ°ÍÀÌ´Ù.   
            </para> 
            <para> 
                ¿¹Á¦ÄÚµå´Â template ¸¦ ÀÌ¿ëÇØ¼­ ÀÛ¼ºµÉ°ÍÀÌ´Ù.  
                template ¸¦ ÀÌ¿ëÇÔÀ¸·Î½á, ÀÚ·áÇü¿¡ °ü°è¾øÀÌ À¯¿¬ÇÑ ÀڷᱸÁ¶ÀÇ  
                ±¸ÃàÀÌ °¡´ÉÇÒ°ÍÀÌ´Ù.   
            </para> 
            <para> 
                <emphasis>¿¹Á¦ : circular_queue.c</emphasis> 
                <screen> 
#include <iostream> 
#include <unistd.h> 
#include <stdlib.h> 
#include <string.h> 
#include <stdio.h> 
 
using namespace std; 
 
template <typename T1> 
class Queue 
{ 
    private: 
        int MaxSize;  
        int DataIndex;  
        int QueueSize;  
        T1  *Array;  
        int PushNum; 
    public: 
        // »ý¼ºÀÚ·Î½á µðÆúÆ® ¾Æ±Ô¸ÕÆ®·Î  
        // Å¥ÀÇ »çÀÌÁ ÁöÁ¤Çß´Ù.  
        // ¾Æ±Ô¸ÕÆ®·Î ³Ñ¾î¿Â Å©±â¸¸Å­ Array ÀÇ Å©±â¸¦  
        // ÇÒ´çÇÏ°í ±âŸ ¸â¹öº¯¼öµéÀÇ °ªÀ» Àû´çÈ÷ ÃʱâÈ­ ÇÑ´Ù.        Queue(int size=40) 
        { 
            MaxSize = size; 
            Array = (T1 *)malloc(sizeof(T1)*MaxSize); 
            QueueSize = 0; 
            DataIndex = 0; 
            PushNum   = 0; 
        } 
        // ¼Ò¸êÀÚ ÀÚ¿øÀ» ÇØÁ¦ÇÑ´Ù. 
        ~Queue() 
        { 
            free(Array); 
        } 
        // Array¿¡ ¿ø¼Ò¸¦ ÀÔ·ÂÇÑ´Ù.  
        // ¸¸¾à¿¡ Array ÀÇ Å©±â¸¦ ÃʰúÇØ¼­ ¿ø¼Ò°¡ µé¾î°¥°æ¿ì  
        // MaxSize*2 Å©±â¸¸Å­ ¸Þ¸ð¸®ÀÇ Å©±â¸¦ ÀçÇÒ´çÇÑ´Ù.   
        void push_back(T1 x) 
        { 
            if (QueueSize > MaxSize - 1) 
            { 
                MaxSize *= 2;  
                if ((Array = (T1 *)realloc(Array, sizeof(T1)*MaxSize)) == NULL) 
                { 
                    perror("realloc error:");    
                    exit(0); 
                } 
                cout << "Realloc OK" << endl; 
            } 
            Array[PushNum%MaxSize] = x; 
            PushNum++; 
            QueueSize++; 
        } 
        // µ¥ÀÌŸ¸¦ ²¨³½´Ù.  
        T1 pop() 
        { 
            QueueSize--;  
            DataIndex++; 
            return Array[(DataIndex-1)%MaxSize];  
        } 
        // Å¥¿¡ ÀÖ´Â µ¥ÀÌŸÀÇ °¹¼ö¸¦ ¾ò¾î¿Â´Ù. 
        int size() 
        { 
            return QueueSize; 
        } 
        // Å¥ÀÇ Å©±â¸¦ ¾ò¾î¿Â´Ù. 
        int capacity() 
        { 
            return MaxSize; 
        } 
        // ¿ø¼Ò¸¦ »èÁ¦ÇÑ´Ù.  
        // ½ÇÁ¦ µ¥ÀÌŸ¸¦ free ½ÃŰÁö´Â ¾Ê°í, Index 
        // °ªµéÀ» Á¶Á¤Çؼ­ »èÁ¦ÇÑ°Í Ã³·³ º¸ÀÌ°Ô ÇÑ´Ù. 
        void clear() 
        { 
            QueueSize = 0; 
            DataIndex = 0; 
            PushNum   = 0; 
        } 
}; 
 
int main() 
{ 
    Queue<char *> myqueue(4); 
    cout << "Queue capacity "  << myqueue.capacity() << endl; 
    myqueue.push_back("hello 1"); 
    myqueue.push_back("hello 2"); 
    myqueue.push_back("hello 3"); 
    myqueue.push_back("hello 4"); 
    myqueue.push_back("hello 5"); 
    myqueue.push_back("hello 6"); 
    int size = myqueue.size(); 
    for (int i = 0; i < size; i++) 
        cout << myqueue.pop() << endl; 
 
    myqueue.push_back("hello 1"); 
    myqueue.push_back("hello 2"); 
    myqueue.push_back("hello 3"); 
    myqueue.push_back("hello 4"); 
 
    for (int i = 0; i < size; i++) 
        cout << myqueue.pop() << endl; 
 
    cout << "Queue capacity "  << myqueue.capacity() << endl; 
    myqueue.clear(); 
    cout << "Queue Size " << myqueue.size() << endl; 
} 
                </screen> 
                ¿¹Á¦´Â ÁÖ¼®¸¸À¸·Îµµ ÃæºÐÈ÷ ÀÌÇØ°¡ °¡´ÉÇÒ °ÍÀÌ´Ù.  
                ½ÇÁ¦ STL ÀÇ deque ¿Í ¸Å¿ì ºñ½ÁÇÏ°Ô ±¸ÇöµÇ¾úÀ½À» ¾Ë¼ö ÀÖ´Ù.    
            </para> 
        </section> 
        <section> 
            <title>±¸Çö ¿¹ - linked list</title> 
            <para> 
                queue ¸¦ ±¸ÇöÇÒ¼ö ÀÖ´Â ¶Ç´Ù¸¥ ¹æ¹ýÀº linked list ¸¦ ÀÌ¿ëÇÏ´Â ¹æ¹ýÀ¸·Î  
                ¹è¿­·Î ±¸ÇöµÇ´Â circular queue ¿¡ ºñÇØ¼­ Á»´õ ±î´Ù·Ó´Ù. ¶ÇÇÑ  
                pop À» ÇÒ¶§ °¡Á®¿Â µ¥ÀÌŸÀÇ °æ¿ì ÀÚ¿øÇØÁ¦(free)¸¦ ÇØÁà¾ßÇϰí,  
                µ¥ÀÌŸ¸¦ push_back ÇÒ°æ¿ì »õ·Î¿î °ø°£À» ¸¸µé¾î¾ß Çϱ⠶§¹®¿¡ À§ÀÇ circular  
                queue ¿¡ ºñÇØ¼­ Á»´õ ºñÈ¿À²ÀûÀÌ µÉ°æ¿ì°¡ ¸¹´Ù.  
                ³ªÁß¿¡ linked list ¿¡¼­ ÀÚ¼¼ÇÏ°Ô ´Ù·ê ¿¹Á¤ÀÓÀ¸·Î  
                ¿©±â¿¡¼­´Â linked list ·Î ±¸ÇöÇÏ´Â ¿¹Á¦´Â ´Ù·çÁö ¾ÊÀ»°ÍÀÌ´Ù.  
                °³ÀÎÀûÀ¸·Î ±¸ÇöÇØº¸°í ½Í´Ù¸é,  
                <ulink url=http://www.joinc.co.kr/modules.php?name=News&file=article&sid=89>µ¿Àû ¸Þ¸ð¸®ÇÒ´ç</ulink>À» Âü°íÇØ¼­ ±¸ÇöÇØº¸±â ¹Ù¶õ´Ù.   
            </para> 
        </section> 
    </section> 
</section> 
<section> 
    <title>°á·Ð</title> 
    <para> 
        ÀÌ»ó °£´ÜÇÏ°Ô Å¥ÀÚ·áÃß»ó¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸¾Ò´Ù.  
        ¾Æ¸¶ ½ºÅÃÀÚ·áÃß»ó°ú ¸¶Âù°¡Áö·Î ¸Å¿ì ÆòÀÌÇÑ ¼öÁØÀÇ ±ÛÀÌ¿´À»°ÍÀ¸·Î »ý°¢µÈ´Ù.  
        ´ÙÀ½ °­Á´ linked list ¿Í ÀÌÀÇ ÀÀ¿ë¿¡ ´ëÇѳ»¿ëÀ» ´Ù·ç°Ô µÉ°ÍÀÌ´Ù.  
    </para> 
</section> 
</article> 
 
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.