ผลต่างระหว่างรุ่นของ "กองซ้อน"

เนื้อหาที่ลบ เนื้อหาที่เพิ่ม
ไม่มีความย่อการแก้ไข
ป้ายระบุ: แก้ไขจากอุปกรณ์เคลื่อนที่ แก้ไขจากเว็บสำหรับอุปกรณ์เคลื่อนที่
บรรทัด 1:
{{ความหมายอื่น|||สแต็ก (แก้ความกำกวม)}}
{{ต้องการอ้างอิง}}
<br />{{กล่องข้อมูล แบบชนิดข้อมูลนามธรรม
| ชื่อ=กองซ้อน
| ภาพ=
| description=
| order=''FILO (First In Last Out)''
| same=อนุญาตให้ซ้ำกันได้
| access=PUSH/POP
| accesstime=[[สัญกรณ์โอใหญ่|O(1)]]
| children=
}}
 
'''กองซ้อน''' หรือ '''สแต็ก''' ({{Lang-en|Stack}}) หมายถึง [[แบบชนิดข้อมูลนามธรรม]]ที่มีลักษณะการเรียงลำดับข้อมูล ในการเข้า-ออกในลักษณะเข้าก่อนออกทีหลัง ''FILO (First In Last Out)'' กล่าวคือข้อมูลที่เข้าใหม่ๆจะได้ออกก่อน คล้ายกองที่ทับถมซึ่งสิ่งที่เข้ามาใหม่จะอยู่ด้านบนๆ จึงเรียกว่า กองซ้อน (stack) กองซ้อนมีการดำเนินการพื้นฐานเพียง 3 อย่าง ได้แก่ push, pop และ top กองซ้อน โดยที่การ push คือการใส่ข้อมูลลงไปในกองซ้อน ซึ่งจะกระทำได้หากกองซ้อนยังว่างอยู่ หากไม่มีที่ว่างในกองซ้อนเหลืออยู่หรือกองซ้อนเต็ม กองซ้อนนั้นจะอยู่ในสภาวะล้นหรือมากเกินเก็บ (overflow) การ pop คือการนำข้อมูลออกจากส่วนบนสุดของกองซ้อน นอกจากนี้ การ pop จะเผยข้อมูลที่ถูกผิดอยู่ก่อนหน้า หรือทำให้กองซ้อนว่างได้ แต่ถ้ากองซ้อนนั้นว่างอยู่แล้ว การ pop จะทำให้อยู่ในสภาวะน้อยเกินเก็บ (underflow) (นั่นคือ ไม่มีข้อมูลให้นำออกแล้ว) การ top กองซ้อน จะดึงข้อมูลที่อยู่บนสุดและส่งค่านั้นให้ผู้ใช้โดยที่ไม่ได้ลบทิ้งไป การ top กองซ้อนอาจทำให้กองซ้อนอยู่ในสภาวะน้อยเกินเก็บได้เช่นกัน หากกองซ้อนว่างอยู่แล้ว
 
กองซ้อนจึงเป็นวิธีการจัดการเข้า-ออกของข้อมูลอีกแบบหนึ่ง เป็น[[โครงสร้างข้อมูล]]ที่นำมาใช้ในการทำงานของโปรแกรมคอมพิวเตอร์หลายประการ อาทิการสร้าง subroutine การเรียงลำดับนิพจน์ ฯลฯ
 
== จุดเด่นของกองซ้อน ==
กองซ้อนมีจุดเด่นในการจัดการการเข้า-ออกของข้อมูล ใช้เก็บข้อมูลที่ต้องการจัดเรียงเป็นระบบ โดยพิจารณาข้อมูลที่มาใหม่ๆก่อน จึงทำให้สะดวกต่อการจัดการข้อมูลซึ่งต้องการเรียงลำดับใหม่ หรือการย้อนกลับไปจากข้อมูลใหม่ไปข้อมูลเก่า เช่น subroutine,การเรียงลำดับนิพจน์