สถิติการเข้าชม

วันเสาร์ที่ 1 สิงหาคม พ.ศ. 2552

DTS 05-22/07/52

สรุป
สแตก(Stack)เป็นโครงสร้างข้อมูลแบบลิเนียร์ลิสต์(linear list)
ที่สามารถนำข้อมูลเข้าหรือออกได้ทางเดียวคือส่วนบนของสแตกหรือ
หรือเรียกว่า ท๊อปของสแตก (Top Of Stack) ซึ่งคุณสมบัติดังกล่าว
เรียกว่า ไลโฟลิสต์ (LIFO list: Last-In-First-Out list)หรือ
พูชดาวน์ลิสต์ (Pushdown List) คือสมาชิกที่เข้าลิสต์ที่หลังสุด
จะได้ออกจากลิสต์ก่อน หรือ เข้าหลังออกก่อน การเพิ่มข้อมูลเข้า
สแตกจะเรียกว่าพูชชิ่ง (pushing) การนำข้อมูลจากสแตกเรียกว่า
ป๊อปปิ้ง (poping) การเพิ่มหรือลบข้อมูล ในสแตกทำที่ท๊อปของสแตก
ท๊อปของสแตกนี้เองเป็นตัวชี้สมาชิกตัวท้ายสุดของสแตก


สแตกจะประกอบด้วยกระบวนการ 3 กระบวนการ คือ

1. Push คือ การนำข้อมูลใส่ในสแตก และสามารถตรวจสอบว่าสแตกเต็ม
หรือไม่ ถ้าไม่เต็มสามารถเพิ่มข้อมูลลงไปได้ แล้วปรับตัวชี้ตำแหน่งให้ไป
ชี้ที่สแตกว่าง ถ้าเต็ม (Stack Overflow)ก็ไม่สามารถเพิ่มข้อมูลได้

2. Pop คือ การนำข้อมูลออกจากส่วนบนสุดของสแตก ถ้ามีข้อมูลออก
จากสแตก เพียงหนึ่งตัว จะเกิดสภาวะว่าง (Stack Empty)คือการไม่มี
ข้อมูลในสแตก ถ้าไม่มีข้อมูลในสแตก แล้วทำการ Popจำทำให้เกิดความ
ผิดพราดที่เรียกว่า Stack Underflow

3. Stack Top คือ การคัดลอกข้อมูลที่อยู่บนสุดของสแตก แต่ไม่ได้นำ
ข้อมูลออกจากสแตก

ตัวอย่างการทำงานแบบโครงสร้างข้อมูลแบบสแตกที่สามารถเห็นได้ใน
ชีวิตประจำวันทั่วไป

1. การส่งการบ้านอาจารย์ เอามาวางซ้อนกันขึ้นเรื่อยๆ ใครส่งช้าก็ได้ตรวจก่อน

2. ตอนที่กินน้ำใน บิ๊กซี แก้วน้ำจะเป็นกรวยสีขาว

3. ตอนที่พนักงานตักไอศครีม ต้องตักข้างบนก่อน

4. ตอนที่เก็บเสื้อผ้าใส่กระเป๋าเดินทาง ตัวที่พับที่หลัง เมื่อเปิดกระเป๋าก็จะถูก
หยิบออกมาก่อน

5. ซื้อเมนทอลเป็นแท่งในเซเว่น เม็ดที่ถูกผลิตก่อนจะใส่ลงไปก่อนเวลาที่เรา
เปิดทาน เราจะได้ทานเม็ดที่เข้าที่หลัง

6. ขนมปังของฟาร์มเฮาร์ที่เป็นแผ่นเปล่า ถูกเรียงกันขึ้นเป็นหลายสิบแผ่นแต่
แผ่นที่ผลิดก่อนจะอยู่ข้างล่าง แผ่นที่ผลิตที่หลังจะอยู่ด้านบนเวลาเราทานก็
จะเปิดทานที่ด้านบนก่อน

ไม่มีความคิดเห็น:

แสดงความคิดเห็น