บทที่ 4 โครงสรางขอมูลแบบเชิงเสน (สแตก-Stack)
ความหมายของ Stack
สแตกเปนโครงสรางขอมูลแบบหนึ่ง มีลักษณะคือขอมูลที่เก็บใน Stack จะเก็บใน ลักษณะวางทับกัน ขอมูลตัวแรกจะเป็นข้อมูลที่อยูลางสุดของ Stack และขอมูลตัวสุดทายจะเปน ขอมูลที่อยูบนสุดดังนั้นขอมูลที่นําเขาไปเก็บกอนจะออกมาทีหลังสวนขอมูลที่นําเขาไปเก็บทีหลัง จะออกมากอน จากคุณสมบัตินี้ทําใหสแตกไดชื่อวา เปนโครงสรางแบบ LIFO ( ไลโฟ ) Last - in First - out หรือ พูชดาวนลิสต
สแตกเปนโครงสรางขอมูลแบบหนึ่ง มีลักษณะคือขอมูลที่เก็บใน Stack จะเก็บใน ลักษณะวางทับกัน ขอมูลตัวแรกจะเป็นข้อมูลที่อยูลางสุดของ Stack และขอมูลตัวสุดทายจะเปน ขอมูลที่อยูบนสุดดังนั้นขอมูลที่นําเขาไปเก็บกอนจะออกมาทีหลังสวนขอมูลที่นําเขาไปเก็บทีหลัง จะออกมากอน จากคุณสมบัตินี้ทําใหสแตกไดชื่อวา เปนโครงสรางแบบ LIFO ( ไลโฟ ) Last - in First - out หรือ พูชดาวนลิสต
( Pushdown List ) คือสมาชิกที่เขาลิสตหลังสุดจะออกจากลิสตกอน
การจัดการ Stack
ก็มีการใชรูปแบบพอยเตอรเมื่อ ทําการนําขอมูลเขา หรือนําขอมูลออกจะกระทําที่ปลาย ขางเดียวกันของสแตก ปลายขางนั้นเรียกว่า ท็อปของสแตก ( Top of Stack ) ซึ่งท็อปของสแตกนี้ จะเปนตัวชี้สมาชิกตัวสุดทายของสแตก
โครงสรางของ Stack
ประกอบด้วยส่วนสําคัญ 2 สวนคือ ตัวชี้สแตก ( Stack Pointer ) และสวนสมาชิกของ สแตก ( Stack element ) ซึ่งสมาชิกของสแตกนี้จะเป็นข้อมูลชนิดเดียวกันทั้งหมดเชน ขอมูลที่ เปน เลขจํานวนเต็มเปนตน ตัวชี้สแตกจะเปนตัวควบคุมการนําสมาชิกเขาหรือออกจากสแตกและเปน ตัวบงบอกวา สแตกเต็มแล้วหรือยัง
ซึ่งมีท็อป ( Top ) ชี้สมาชิกตัวบนสุดเมื่อ มีการนําขอมูลเขาสแตก ( Push ) สแตกท็อปจะเลื่อน ขึ้นหนึ่งตําแหนงเมื่อมีการนำขอมูลออกจากสแตก ( Pop ) สแตกท็อปจะเลื่อนลงหนึ่งตําแหนง
จากรูป ( 1 ) เมื่อเพิ่มขอมูล E เขาสแตกและเมื่อดึงขอมลออกจากสแตก
รูปรางของสแตกไมจําเป็นต้องหันท็อปขึ้นเสมอไป แตไมวาจะอยูทิศทางใด ท็อปของ สแตกจะทําหนาที่ชี้สมาชิกตัวสุดทายของสแตก
Operation ของ Stack
1. Push Stack เปนการเพิ่มขอม ูลเขาสแตกเรียกวา “พูชชงิ่ ” (Pushing)
2. Pop Stack เปนการนําขอมูลออกจากสแตก เรียกวา “พ็อปปง” (Popping)
ลําดับการเริ่มตนการคานวณ
อันดับ 1. เครื่องหมาย ( ) วงเล็บ
อันดับ 2. เครื่องหมาย ^ ยกกําลัง
อันดับ 3. เครื่องหมาย / หารและเครื่องหมาย * คูณ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น