push, pop

การดำเนินการกับสแตก (Operation on Stacks:push and pop)

โครงสร้างสแตกสามารถดำเนินการได้ 2 ลักษณะหลักๆ คือ

1.    การนำสมาชิกใหม่เข้าไปเก็บในสแตก (Add หรือ Insert) การดำเนินการนี้จะมีชื่อเรียกโดยเฉพาะ เป็นมาตรฐานสากลว่า push การสั่ง push(Stack,item) จะหมายถึงให้น้ำ item ซึ่วเป็นสมาชิกใหม่เข้าไปวางไว้ด้านบนสุดของสแตก

2.    การนำสมาชิกใหม่ออกจากสแตก (Remove  หรือ Delete) การดำเนินการนี้จะมีชื่อเป็นมาตรฐานว่า pop การสั่ง pop (stack,item) หมายถึงการนำสมาชิกด้านบนสุดของสแตกออกมาแล้วส่งค่านั้นกลับโดยผ่าน item

คำว่า push หรือ pop จะใช้กับโครงสร้างสแตกเท่านั้น

 

 

ต่อไปนี้จะเป็นภาพจำลองเพื่อให้เห็นวิธีการจัดการกับสแตก

 

คำสั่ง                                                                                              ภาพของสแตก

 

2

 

 

 

 

push (stack, 2) ;                              

 

2

8

 

 

 

push (stack, 8) ;                     

 

2

8

5

 

 

push (stack, 5) ;

2

8

 

 

 

 

pop (stack, item) ;

 

                                                                             item มีค่า 5

2

 

 

 

 

pop (stack, item) ;

 

                                                                             item มีค่า 8

2

9

 

 

 

item = 9 ;

 

 

 

 

 

         โดยปกติการวาดภาพของสแตกมักนิยมวาดในลักษณะอาร์เรย์หงาย โดยมีปลายเปิดด้านบน ทั้งนี้เพราะสามารถมองเห็นภาพกรณีการ push หรือการ pop ได้โดยง่ายและชัดเจน

 

คำสั่ง    

                                                                                                        

  push (Stack, “Malee”) ;  Malee    

        ภาพของสแตก          

 

Malee

 

 

 

 

   push (Stack, “Suda”) ; Suda

     ภาพของสแตก 

 

Suda

Malee

                          

 

 

 

                                                          

   push (Stack, “Anant”) ; Anant

     ภาพของสแตก                

 

Anant

Suda

Malee

 

 

 

 

 

 

pop (Stack, “name”) ; name

      ภาพของสแตก 

 

Anant

Suda

Malee