ÇÁ·Î±×·¡¹Ö

 3204, 20/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 : 3221     Date : 2004/02/09 08:09



    
hkpco ;; Áú¹®ÀÌ ¾îÁö·´±º¿ä.. little to little Á¶±Ý¾¿ Á¶±Ý¾¿ 2004/02/11  
o-0_o-0 ÇêÇê,, Àú°Ç °ÔÀÓÇÁ·Î±×·¡¹Ö Àü¹®°¡¿¡ ³ª¿À´Â ½ºÅà push ¾Ë°í¸®Áò~!! 2004/02/12  
2824   c¾ð¾î Ãʺ¸ Áú¹®ÀÔ´Ï´Ù.[2]     jumong
02/03 2928
2823     [re] c¾ð¾î Ãʺ¸ Áú¹®ÀÔ´Ï´Ù.[1]     TIM_Scutum
02/03 3147
2822   ÄÄÆÄÀÏ °ü·Ã Áú¹®ÀÔ´Ï´Ù.[3]     ÆĶõ°í¾çÀÌ¢Ý
02/03 3084
2821     [re] ÄÄÆÄÀÏ °ü·Ã Áú¹®ÀÔ´Ï´Ù.[1]     arumi1004
02/04 3568
2820   Á¤¸» ÇãÁ¢Áú¹®ÀÌÁö¸¸...¤»¤»[2]     koninja
02/04 3401
2819   À©µµ¿ì ºÎÆÃÀ̹ÌÁö º¯°æÇÒ¼ö ÀÖ³ª¿ä??[4]     yohey
02/05 4129
2818   C ¾ð¾î ¿¹Á¦ ¹®Á¦,[3]     kimdc86
02/05 3756
2817     [re] C ¾ð¾î ¿¹Á¦ ¹®Á¦,[1]     TIM_Scutum
02/05 5373
2816   C¾ð¾î µ¶ÇÐÇغ¸°íÀÚ ÇÕ´Ï´Ù.[7]     jang976
02/05 5239
2815   ¾Æ.. ¹ÌÄ¡°Ú½À´Ï´Ù.. C/C++ ¾ð¾î¸¦ ¹è¿ì°íÀִµ¥¿ä[4]     insung38
02/06 3469
2814   Ãʺ¸ ÀûÀÎ ÁúºÐÀÌ¿ä~[5]     mania1984
02/08 3168
2813   Àú±â..Turbo C++ ¾îµð¼­ ´Ù¿î¹ÞÁÒ?[2]     insung38
02/09 4499
  stack ±¸Á¶ Áú¹®[2]     na2r8
02/09 3220
2811     [re] stack ±¸Á¶ Áú¹®     TIM_Scutum
02/12 3329
2810   ÈÞ.. C++¾ð¾î °øºÎÇÏ°íÀִµ¥.. µµÀúÈ÷ °³³äÁ¶Â÷ ¾ÈÀâÈ÷´Âµ¥¿ä[6]     insung38
02/09 3620
2809   ¾î¼Àºí·¯ Äڵ忡 °üÇÏ¿©[2]     hotbloodswj
02/11 3446
2808   Áú¹®ÀÌ¿©...±ÞÇÔ ÀÌ ¼Ò½ºÄڵ尡 ÄÄÆÄÀÏÀÌ ¾ÈµÇ³×¿©... Dev-c++Àε¥[3]     osy0810
02/11 3976
2807   TIM_Scutum´Ô Áú¹®¿©... ±ÞÇÔ´Ï´ç..[4]     osy0810
02/12 3229
2806   ¸®´ª½º¿¡¼­.. void´Â??[2]     mania1984
02/14 3448
2805   crypt¶ó´Â ÇÔ¼ö´Â ¹º°¡¿ä?[2]     Keres
02/16 3347
[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