วันพฤหัสบดีที่ 23 กรกฎาคม พ.ศ. 2552

DTS 05-22/07/52

Linked List :
กระบวนการทำงานและฟังก์ชั่นที่ใช้ดำเนินงานพื้นฐาน (ต่อ)
1. กระบวนการทำงาน Traverse : การท่องไปใน list เพื่อเข้าถึงการประมวลผลข้อมูลนำเข้าของ list ก็ขึ้นอยู่กับประมวลผลด้วย
2. กระบวนการทำงาน Retrieve Node : การเรียกกับคืน โดยบอกตำแหน่งของข้อมูลและนำตำแหน่งที่ได้ค่าแสดง
3. ฟังก์ชั่น Empty list : ทดสอบว่า list ว่าง ถ้าจริง list ก็ว่าง ถ้าไม่จริง list ไม่ว่าง
4. ฟังก์ชั่น Full list : การทดสอบ list เต็มหรือไม่ ถ้าจริงหน่วยความจำเต็ม ถ้าไม่จริง สามารถมี node อื่นได้
5. ฟังก์ชั่น List count : นับจำนวนใน list โดยเอาค่า count มาแสดงที่อยู่ใน head node
6. กระบวนการทำงาน Destroy List : การทำลาย list

Stack:
สแตก คือ เป็นข้อมูลที่เป็นลิเนอร์ลิสต์ มีคุณสมบัติเพิ่มหรือลบข้อมูล จะกระทำข้างเดียว เรียกว่า Top ของสแตก โดยมีลักษณะที่เป็นข้อมูลที่ใส่หลังสุดจะถูกนำออกจากสแตกเป็นลำดับแรกสุด
การดำเนินงานพื้นฐานของสแตก
การกระทำที่ปลายข้างหนึ่งของสแตกเท่านั้น ดังนั้นจะต้องมีตัวชี้ตำแหน่งข้อมูลบนสุดของสแตกด้วย สแตกจะประกอบด้วยกระบวนการ 3 กระบวนการ คือ
1. Push คือ การนำข้อมูลใส่ในสแตก และสามารถตรวจสอบว่าสแตกเต็มหรือไม่ ถ้าไม่เต็มสามารถเพิ่มข้อมูลลงไปได้ แล้วปรับตัวชี้ตำแหน่งให้ไปชี้ที่สแตกว่าง ถ้าเต็ม (Stack Overflow) ก็ไม่สามารถเพิ่มข้อมูลได้
2. Pop คือ การนำข้อมูลออกจากส่วนบนสุดของสแตก ถ้ามีข้อมูลออกจากสแตกเพียงหนึ่งตัว จะเกิดสภาวะว่าง (Stack Empty) คือการไม่มีข้อมูลในสแตก ถ้าไม่มีข้อมูลในสแตก แล้วทำการ Pop จำทำให้เกิดความผิดพราดที่เรียกว่า Stack Underflow ดังนั้นก่อนการนำข้อมูลออกจากสแตกต้องทำการตรวจสอบก่อนว่าว่างหรือเปล่า จึงจะนำข้อมูลออกได้ และปรับตัวชี้ตำแหน่งให้ไปชี้ตำแหน่งข้อมูลที่ต่อจากข้อมูลที่ถูกนำออกไป
3. Stack Top คือ การคัดลอกข้อมูลที่อยู่บนสุดของสแตก แต่ไม่ได้นำข้อมูลออกจากสแตก


การบ้าน
ยกตัวอย่างในการใช้ชีวิตประจำวันเกี่ยวกับ Stack


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

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

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