ÇÁ·Î±×·¡¹Ö

 3204, 1/161 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   na2r8
   stack ±¸Á¶ Áú¹®

http://www.hackerschool.org/HS_Boards/zboard.php?id=QNA_programming&no=411 [º¹»ç]


¡Ú¡Ú¡Ú À̺κÐÀÌ Àǹ®½º·¯¿îµ¥¿ä.. ¹°·Ð Á¦°¡ À߸ø ÀÌÇØÇÏ°í Àִ°ŰÚÁÒ? ^^; ¾Æ¹«Æ°.. Áö±ÝºÎÅÍ ¼³¸íµå¸®°Ú½À´Ï´Ù..

1. temp °ø°£»ý¼º
2. stack °ø°£À» temp°ø°£¿¡ Àӽà º¹»ç
3. stack ÇØÁ¦
4. count °ªÀ» 1 ´õÇÔ
5. stack °ø°£À» [(count+1) * sizeof(int)] ¸¸Å­ »õ·Î »ý¼º
6. stack[0] = data; // »õ·Î ³ÖÀ» data¸¦ stack[0]¿¡ ÀúÀå
7. stack+1À» ÇØÁØ´Ù.
8. count-1À» ÇØÁØ´Ù. ±×·¡¾ß ¿ø·¡ ÀÖ´ø temp°ª¸¸ »õ·Î »ý¼ºµÈ stackÀ¸·Î »ðÀÔ°¡´ÉÇϴϱî.. ¡Ú¡Ú¡Ú Àǹ® : Á¦°¡ »ý°¢ÇÏ°í ÀÖ´Â°Ô ¸Â´ÂÁö¿ä..

int push_stack(int data)
{
    int *temp;  // stackÀÇ ³»¿ëÀ» Àӽ÷ΠÀúÀåÇϱâ À§ÇÑ Æ÷ÀÎÅÍ
    temp = (int *)malloc(count * sizeof(int));
    if(temp == NULL) // ¿¹¿Üó¸®
         return 0;
    memcpy(temp, stack, count * sizeof(int)); // temp·Î stack ¸Þ¸ð¸® (µ¥ÀÌÅÍÀÇ °³¼ö * intÇüÀÇ Å©±â¸¸Å­)°ø°£À» º¹»ç

    free(stack); // ÇöÀçÀÇ stack ¸Þ¸ð¸® °ø°£À» ÇØÁ¦
    count += 1;
    stack = (int *)malloc(count * sizeof(int)); // »õ·Î ÇÒ´çµÈ ¸Þ¸ð¸®°ø°£(µ¥ÀÌÅÍÀÇ °³¼ö * intÇüÀÇ Å©±â ¸¸Å­)ÀÇ ¸Þ¸ð¸® ÇÒ´ç : »õ·Î¿î µ¥ÀÌÅ͸¦ ³Ö±â À§Çؼ­)
    if(stack == NULL) // ¿¹¿Üó¸®
         return 0;

stack[0] = data; // »õ·Î ³ÖÀ» data¸¦ stack[0]¿¡ ÀúÀå

    memcpy(stack+1, temp, (count - 1) * sizeof(int)); // Àӽà ÀúÀåµÇ¾î ÀÖ´ø temp ¸Þ¸ð¸®¸¦ (µ¥ÀÌÅÍÀÇ °³¼ö * intÇüÀÇ Å©±â¸¸Å­) stack+1ÀÇ À§Ä¡·Î º¹»ç

¸ÕÀúÀÖ´ø µ¥ÀÌÅÍ¿¡ ¿¬°áÇؼ­ ÀúÀåÇϱâ À§ÇÑ °ÍÀÏ µí..

³·ÀºÁÖ¼Ò(stack)------>³ôÀºÁÖ¼Ò(stack+1)
stack[0]..................stack[1] ¡Ú¡Ú¡Ú Á¦°¡ »ý°¢ÇÏ°í ÀÖ´Â°Ô ¸Â´ÂÁö¿ä?

¡Ú¡Ú¡Ú°ªÀÌ ÀúÀå µÇ´Â ¼ø¼­°¡ Çò°¥¸³´Ï´Ù.

½ºÅÃÀº Last In First Out ÀÌ µÇ´Ï±î »õ·Î¿î °ª(stack[0])ÀÌ ¸Ç ¾Æ·¡(³ôÀº

ÁÖ¼Ò)¿¡ ÀúÀåµÇ¾ß Çϴ°Š¾Æ´Ñ°¡¿ä? ±×·±µ¥ »õ·Î¿î °ª(stack[0])ÀÌ ¸Ç À§

¿¡ ÀúÀåµÇ¾î ¹ö¸®¸é °ªÀÌ ÀúÀåµÉ¶§¸¶´Ù »õ·Î¿î °ªÀÌ ¸Ç À§·Î °¡°Ô µÇ¾î¹ö¸®

Àݾƿä..


±×·¸°Ô µÇ¸é

³·ÀºÁÖ¼Ò-------------------------------------------> µ¥ÀÌÅÍ µé¾î°¡´Â ¼ø¼­(³ôÀºÁÖ¼Ò)
³ªÁß¿¡ µé¾î°£ °ª(stack[0])......................................................¸ÕÀú µé¾î°£ °ª

»õ·Î ÀԷµǴ stack[0]Àº Ç×»ó ¸Ç À§¿¡.. ¤Ð.¤Ð

ÀÌ°Ô ¸Â´Â°Ç°¡¿ä?


¿ø·¡´Â
-------------------------------------------> µ¥ÀÌÅÍ µé¾î°¡´Â ¼ø¼­
³ªÁß¿¡ µé¾î°£ °ª....................................................¸ÕÀúµé¾î°£ °ª(stack[0])

ÀÌ°Ô Á¤»ó ¾Æ´Ñ°¡¿ä?
  
    free(temp); // Àӽðø°£À» ÇØÁ¦
    return 1;
}

´äº¯ ºÎŹµå¸³´Ï´Ù~¢ª *^^*  

  Hit : 3243     Date : 2004/02/09 08:09



    
hkpco ;; Áú¹®ÀÌ ¾îÁö·´±º¿ä.. little to little Á¶±Ý¾¿ Á¶±Ý¾¿ 2004/02/11  
o-0_o-0 ÇêÇê,, Àú°Ç °ÔÀÓÇÁ·Î±×·¡¹Ö Àü¹®°¡¿¡ ³ª¿À´Â ½ºÅà push ¾Ë°í¸®Áò~!! 2004/02/12  
3204   Ä¡Æ®¿£Áø °í¼öºÐ °è½Ç±î¿ä[1]     rjsdudals123
02/15 280
3203   ¿À·ù Á» ã¾ÆÁÖ¼¼¿ä [1]     marunim
05/30 1012
3202   c¾ð¾î segmentation fault:11 ¿À·ù Áú¹®µå¸³´Ï´Ù![2]     leebk1124
05/21 2094
3201   C++ÇÔ¼ö°ü·Ã Áú¹®ÀÌ¿¡¿ë!![3]     1999dylee
05/11 1893
3200   ÆÄÀ̽ã Áö¹® µå¸³´Ï´Ù.[1]     kksh1107
04/24 1627
3199   ¸®¹ö½ÌÀÇ ¼¼¹ø¤Š ²É - ¿ª¶û-     nninni79
04/20 2352
3198   ´Þ°í³ª ¹®¼­ ½©ÄÚµå[1]     ghjk645
03/24 1648
3197 ºñ¹Ð±ÛÀÔ´Ï´Ù  c¾ð¾î ¼Ò¼ö °ª     adwefq
04/29 1
3196   C¾ð¾î ¼Ò½ºÁú¹®ÀÔ´Ï´Ù![5]     an0088
01/05 5311
3195   C++ /// ºôµå ¿¡·¯ ¤Ð¤Ð[1]     guichanta
08/23 2441
3194 ºñ¹Ð±ÛÀÔ´Ï´Ù  c¾ð¾î µµ¿ÍÁÖ¼¼¿ä¤Ð¤Ð     su6339
04/06 0
3193   ÇØÅ·À» ¹è¿ì·Á°íÇϴµ¥[3]     zoodem04
03/26 4228
3192   c¾ð¾î¸¦ ¹è¿ì°í½Í¾î¿ä ![7]     dwc07238
02/11 4190
3191   ½ºÅÃÀÌ ½×ÀÌ´Â ¹æÇâ¿¡ °üÇؼ­!![1]     hackxx123
12/10 3591
3190   ÇØÅ·Åø¿¡¼­ ip ¾øÀÌ Çϵ忡 ½É´Â°Å¿¡´Â ¾î¶²°Ô ÀÖÀ»±î¿ä?[2]     aowlrgmlals
11/27 4434
3189   C¾ð¾î Çϴµ¥ double ½Ç¼ö¸¦ ³ÖÀºµ¥ ÀÚ²Ù 0.0ÀÌ ³ª¿Í¿ä[2]     fatou10336
11/20 3889
3188   dumpcode.h ÀÌÇØÁ» µµ¿ÍÁÖ¼¼¿ä .[1]     cm6418
11/06 3875
3187   c¾ð¾î ¾Ë°í¸®Áò Áú¹®ÀÔ´Ï´Ù.[3]     alstn8150
10/12 3853
3186     [re] c¾ð¾î ¾Ë°í¸®Áò Áú¹®ÀÔ´Ï´Ù.     dafher
05/13 1624
3185   c¾ð¾î ¼Ò½º Áú¹® ¹¹°¡ ¹®Á¦ÀÎÁö¤Ì¤Ì¤Ì¤Ì[2]     sjjh96
05/23 4387
1 [2][3][4][5][6][7][8][9][10]..[161]

Copyright 1999-2024 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org