วันศุกร์ที่ 28 สิงหาคม พ.ศ. 2552

เรื่อง stack

สแตก เ ป็นโครงสร้างข้อมูลที่เป็นแบบลิเนียร์ลิสต์ มีคุณสมบัติ
ที่ว่า การเพิ่มหรือลบข้อมูลในสแตก

ลักษณะที่สำคัญของสแตก คือ
ข้อมูลที่ใส่หลังสุดจะถูกนำออกมา จากสแตกเป็นลับดับแรกสุด
เรียกว่า LIFO ( Last In First Out)

การทำงานของสแตกประกอบไปด้วย 3 กระบวนที่สำคัญ คือ
1. Push คือ การนำข้อมูลใส่ลงไปในสแตก
เช่น สแตก s ต้องการใส่ข้อมูล i ในสแตก จะได้ push (s,i )
2. Pop คือ การนำข้อมูลออกจากส่วนบนสุดของสแตก
เช่น ต้องการนำข้อมูลออกจากสแตก sไปไว้ที่ตัวแปร i
จะได้ i = pop (s)

การแทนที่ข้อมูลของสแตก
สามารถทำได้ 2 วิธี
1. การแทนที่ข้อมูลของสแตกแบบลิงค์ลิสต์
2. การแทนที่ข้อมุลของสแตกแบบอะเรย์

การดำเนินการเกี่ยวกับสแตก ได้แก่
1. Create Stact จัดสรรหน่วยความจำให้แก่ Head Nodeและส่งค่าตำแหน่งที่ชี้ไปยัง
Head ของสแตกกลับมา
2. Push Stact การเพิ่มข้อมูลลงไปในสแตก
3. Pop stact การนำข้อมูลบนสุดออกจากสแตก
4. stack Top เป็นการคัดลอกข้อมูลที่อยู่บนสุดของสแตก โดยไม่มีการลบข้อมูลออกจากสแตก
5. Empty stack เป็นการตรวจสอบการว่างของสแตก เพื่อไม่ให้เกิดความผิดพลาดในการนำข้อมูลออกจากสแตกที่เรียกว่า Stack Underflow เป็นการตรวจสอบว่าสแตกเต็มหรือไม่ เพื่อไม่ให้เกิดความผิดพลาดในการนำข้อมูลเข้าสแตกที่เรียกว่า Stack Overflow
6. Full Stack เป็นการตรวจสอบว่าสแตกเต็มหรือไม่ เพื่อไม่ให้เกิดความผิดพลาดในการนำข้อมูลเข้าสแตกที่เรียกว่า Stack Overflow
7. Stack Count เป็นการนับจำนวนสมาชิกในสแตก
9. Destroy Stack เป็นการลบข้อมูลทั้งหมดที่อยู่ในสแตก

การประยุกต์ใช้สแตก
จะใช้ในงานด้านปฏิบัติการของเครื่องคอมพิวเตอร์ที่ขั้นตอนการทำงานต้องการเก็บข่าวสาร
อันดับแรกสุดไว้ใช้หลังสุด
เช่น การทำงานของโปรแกรมแปลภาษานำไปใช้ในเรื่องของการโปรแกรมที่เรียกใช้โปรแกรย่อยการคำนวณนิพจน์ทางคณิตศาสตร์ และรีเคอร์ชั่น (Recursion)


DTS:06-28-08-2552

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

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