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

DTS 06-04/08/2009

STACK

สแตก (stack) เป็นโครงสร้างข้อมูลที่ ข้อมูลแบบลิเนียร์ลิสต์ ที่มีคุณสมบัติที่ว่า
เพิ่มหรือลบข้อมูลในสแตก จะกระทำที่ปลายข้างเดียว ซึ่งเรียกว่า Top ของสแตก
(Top of Stack)และลักษณะที่สำคัญของสแตก คือ ข้อมูลที่ใส่หลังสุดจะถูกออกมา
จากสแตกเป็นลำดับสุดแรกสุด เรียกว่าคุณสมบัตินี้ว่า LIFO (Last First Out)
การดำเนินงานพื้นฐานของสแตก
การทำงานต่างๆของสแตกจะกระทำที่ปลายข้างหนึ่งของสแตกเท่านั้น
ดังนั้นจะต้องมีตัวชี้(pointer)
ตำแหน่งข้อมูลบนสุดจะประกอบด้วยกระบวนการ 3 กระบวนการที่สำคัญคือ
1.Push คือ การนำข้อมูลใส่ลงไปในสแตก เช่น สแตก s ต้องใส่ข้อมูล i ในสแตกจะได้ push (s,i) คือ ใส่ข้อมูล i ลงไปที่ทอปสแตก s ในการเพิ่มสแตก จะต้องทำการตรวจสอบว่าสแตก
เต็มหรือไม่ ถ้ไม่เต็มก็สามารถเพิ่มข้อมูลลงในสแตกได้ แล้วปรับตัวชี้ตำแหน่งให้ไปชี้ที่ตำแหน่ง
ข้อมูลใหม่ ถ้าสแตกเต็ม ก็จะไม่สามารถเพิ่มข้อมูลเข้าไปในสแตกได้อีก
2.Pop คือ การนำข้อมูลออกจากส่วนบนสุดของสแตก เช่น ต้องการนำข้อมูลออกจากสแตก s ไปไว้ที่ตัวแปร i จะได้ i = pop(s)
3.Stack Top เป็นการคัดลอกข้อมูลที่อยู่บนสุดของสแตกแต่ไม่ได้นำเอาข้อมูลนั้นออกจา
การแทนที่ข้อมูลของสแตก
สามารทำได้ 2 วิธี คือ
1.การแทนที่ข้อมูลของสแตกแบบลิงลิสต์
2.การแทนที่ข้อมูลของสแตกแบบอะเลย์
การแทนที่ข้อมูลของสแตกแบบลิงลิสต์จะประกอบไปด้วย 2 ส่วน คือ
1.Head Node จะประกอบด้วย 2 ส่วน top pointer และจำนวนสมาชิกในสแตก
2.Daya Node จะประกอบไปด้วยข้อมูล (Data) และพอยเตอร์ ที่ชี้ไปยังข้อมูลตัวถัดไป
การดำเนินงานเกี่ยวกับสแตก ได้แก่
1.Create Stack
2.Push Stack
3.Pop Stack
4.Stack Top
5.Empty Stack
6.Full Stack
7.Stack
8.Destroy
การประยุกต์ใช้สแตก
การประยุกต์ใช้สแตกจะใช้ในงานด้านปฏบัติการของเครื่องคอมพิวเตอร์ที่ขั้นตอนการทำงานต้องการเก็บข่าวสารอันดับแรกสุดไว้ใช้หลังสุด

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

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