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

DTS 05 22/7/52

STACK
สแตก(stack) เป็นโครงสร้างข้อมูลที่ข้อมูลแบบลิเนียร์ลิสต์ ที่มีคุณสมบัติที่ว่า การเพิ่มลบข้อมูลในสแตก จะกระทำที่ ปลายข้างเดียวกัน ซึ่งเรียกว่า top ของสแตก และลักษณะที่สำคัญของสแตก คือข้อมูลที่ใส่หลังสุดจะนำออกมาจะออกมาจากสแตกเป็นลำดันแรกสุด เรียกคุณสมบัตินี้ว่า lifo(last in first out) ตัวอย่างคือ ขายของที่เก็บไว้ ก่อนที่จะขายของที่เพิ่งซื้อมาในตอนนี้
การทำงานของสเแตกประกอบด้วยกระบวนการ 3 กระบวการ คือ 1.push คือ การนำข้อมูลใส่ลงไปในสแตกเช่น สแตก s ต้องการใส่ข้อมูล i ในสแตก
จะได้ push (s,i) ในการเพิ่มข้อมูลในสแตกจะต้องทำการว่าสแตกเต็มหรือไม่ ถ้าไม่เต็มก็สามารถเพิ่มได้ ถ้าสแตกเต็ม(stack overflow)ก็ไม่สามารถเพิ่มข้อมูลไปในแสตกได้อีก 2.pop คือ การนำข้อมูลออกจาส่วนบนสุดของสแตก การนำข้อมูลออกจากสแตก ถ้าสแตกมีสมาชิคเพี่ยง 1 ตัวแล้วนำสมาชชิคออกจากสแตก จะเกิดสภาวะว่าง (stack empty) คือ ไม่มีสมาชิคอยู่ในสแตกเลย แต่ถ้ามีสมาชิคแล้วทำการ pop สแตก จะทำให้เกิดความผิดพลาดเรียกว่า stack underflow 3. stack top เป็นการคัดลกข้อมูลอยู่บนสุดของสแตก แต่ไม่ได้นำข็อมูลนั้นออกจาสแตก

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

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