ÇÁ·Î±×·¡¹Ö

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

http://www.hackerschool.org/HS_Boards/zboard.php?desc=asc&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 : 3237     Date : 2004/02/09 08:09



    
hkpco ;; Áú¹®ÀÌ ¾îÁö·´±º¿ä.. little to little Á¶±Ý¾¿ Á¶±Ý¾¿ 2004/02/11  
o-0_o-0 ÇêÇê,, Àú°Ç °ÔÀÓÇÁ·Î±×·¡¹Ö Àü¹®°¡¿¡ ³ª¿À´Â ½ºÅà push ¾Ë°í¸®Áò~!! 2004/02/12  
2844   Æ÷ÀÎÅͼ±¾ð½Ã;;     isvan812
02/01 3154
2843     [re] Æ÷ÀÎÅͼ±¾ð½Ã;;[3]     TIM_Scutum
02/01 3503
2842   ªÀº ÄÚµå ºÐ¼®     isvan812
02/02 3351
2841   ¹®ÀÚ¿­¿¡ ´ëÇÑ ¿©·¯°¡Áö Áú¹®     isvan812
02/02 3110
2840     [re] ¹®ÀÚ¿­¿¡ ´ëÇÑ ¿©·¯°¡Áö Áú¹®     hkpco
02/03 3036
2839     [re] ªÀº ÄÚµå ºÐ¼®     hkpco
02/03 3414
2838   c¾ð¾î Ãʺ¸ Áú¹®ÀÔ´Ï´Ù.[2]     jumong
02/03 2948
2837   ÄÄÆÄÀÏ °ü·Ã Áú¹®ÀÔ´Ï´Ù.[3]     ÆĶõ°í¾çÀÌ¢Ý
02/03 3102
2836     [re] c¾ð¾î Ãʺ¸ Áú¹®ÀÔ´Ï´Ù.[1]     TIM_Scutum
02/03 3163
2835   Á¤¸» ÇãÁ¢Áú¹®ÀÌÁö¸¸...¤»¤»[2]     koninja
02/04 3435
2834     [re] ÄÄÆÄÀÏ °ü·Ã Áú¹®ÀÔ´Ï´Ù.[1]     arumi1004
02/04 3586
2833   À©µµ¿ì ºÎÆÃÀ̹ÌÁö º¯°æÇÒ¼ö ÀÖ³ª¿ä??[4]     yohey
02/05 4147
2832     Áú¹® 3 ¿¡´ëÇÑ ´äº¯ÀÔ´Ï´Ù.     ckw80
02/05 3502
2831   C ¾ð¾î ¿¹Á¦ ¹®Á¦,[3]     kimdc86
02/05 3774
2830   C¾ð¾î µ¶ÇÐÇغ¸°íÀÚ ÇÕ´Ï´Ù.[7]     jang976
02/05 5251
2829     [re] C ¾ð¾î ¿¹Á¦ ¹®Á¦,[1]     TIM_Scutum
02/05 5405
2828   ¾Æ.. ¹ÌÄ¡°Ú½À´Ï´Ù.. C/C++ ¾ð¾î¸¦ ¹è¿ì°íÀִµ¥¿ä[4]     insung38
02/06 3485
2827   Ãʺ¸ ÀûÀÎ ÁúºÐÀÌ¿ä~[5]     mania1984
02/08 3188
2826   Àú±â..Turbo C++ ¾îµð¼­ ´Ù¿î¹ÞÁÒ?[2]     insung38
02/09 4514
  stack ±¸Á¶ Áú¹®[2]     na2r8
02/09 3236
[1]..[11][12][13][14][15][16][17][18] 19 [20]..[161]

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