วันอังคารที่ 28 กรกฎาคม พ.ศ. 2552

DTS05/28/07/52

สแตก(stack)เป็นโครงสร้างข้อมูลที่ข้อมูลแบบเป็นลิเนียร์ลิสต์จะมีคุณสมบัติทีว่าการเพิ่ม หรือการลบข้อมูลในสแตก ลักษณะของสแตกคือข้อมูลที่ใส่หลังสุดหรือการนำเข้าไปหลังสุดแต่ว่าจะถูกนำออกมาจากสแตกเป็นอันดับแรกสุด ที่เรียกคุณสมบัตินี้ว่า LIFO (Last in First Out) การทำงานของสแตกนั้นจะทำที่ปลายข้างหนึ่งของสแตกเท่านั้น ดังนั้นสแตกจะต้องมีตัวชี้ตำแหน่งของข้อมูลบนสุดของสแตกด้วย

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

2.Pop คือการนำข้อมูลออกจากส่วนบนสุดของสแตก ถ้าต้องการนำข้อมูลออกจากสแตก ถ้ามีสแตกมีสมาชิกเพียงตัวเดียวแล้วนำสมาชิกออกจากสแตก ก็จะเกิดภาวะสแตกว่าง คือไม่มีสมาชิกตัวใดอยู่ในแตกเลยเพราะฉะนั้นแล้วการนำข้อมูลออกจากสแตกควรตรวจสอบก่อนว่าสแตกว่างอยู่หรือป่าว

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


การคำนวณ นิพจน์ของ stack
ในการเขียนนิพจน์เพื่อการคำนวณนั้นจะต้องคำนึงถึงความสำคัญของเครื่องหมายสำการคำนวณโดยจะแบ่งการเขียน ได้ เป็น 3 แบบ คือ
1.นิพจน์ infix นิพจน์นี้ operator จะอยู่ตรงกลางระหว่างตัวถูกดำเนินการ 2 ตัว
2.นิพจน์ postfix นิพจน์นี้แบบนี้ จะต้องเขียนตัวถูกดำเนินการตัวที่ 1 และ 2 ก่อน
แล้วจึงเขียน operator
3.นิพจน์ prefix นิพจน์แบบนี้ จะต้องเขียน operator ก่อนแล้วจึงเขียนตามด้วยตัวถูกดำเนินการตัวที่ 1 และ 2 ตามลำดับ

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

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