วันพุธที่ 30 กันยายน พ.ศ. 2552

DTS 05-22-07-2552

สรุปการเรียน
เรื่อง Link List และ Stack

Link List(ต่อ)
- Search list จะทำหน้าที่ค้นหาข้อมูลที่ต้องการข้อมูลนำเข้าในลิสต์
- Traverse ทำหน้าที่ท่องไปในลิสต์เพื่อเข้าถึงและประมวลผลข้อมูลนำเข้าลิสต์
- Retrieve Node ทำหน้าที่หาตำแหน่งข้อมูลนำเข้าลิสต์
- EmptyList ทำหน้าที่ทดสอบข้อมูลนำเข้าลิสต์
- FullList ทำหน้าที่ทดสอบว่าลิสต์เต็มหรือไม่
- List count ทำหน้าที่นับจำนวนข้อมูลที่อยู่ในลิสต์
- Destroy list ทำหน้าที่ทำลายลิสต์ข้อมูลนำเข้า

Linked List แบบซับซ้อน
1. Circular Linked List คือ ลิงค์ลิสต์ที่โหนดสุดท้ายสามารถวนกลับมาที่โหนดแรกได้
2. Double Linked List คือ ลิงค์ลิสต์ที่ทุกโหนดสามรถวกกลับมาที่โหนดก่อนหน้าของตนเองได้

Stackสแตก (Stack) คือ โครงสร้างข้อมูลแบบลิเนียร์ลิสต์ ที่มีคุณสมบัติที่ว่า การเพิ่มหรืลบข้อมูลในสแตก จะกระทำที่ปลายข้างเดียวกัน ซึ่งเรียกว่า Top ของสแตก(Top Of Stack) และลักษณะที่สำคัญของสแตก คือ ข้อมูที่ใส่หลังสุดจะถูกนำออกมาจากสแตกเป็นลำดับแรกสุด เรียกคุณสมบัตินี้ว่า LIFO (Last In Fist Out)

การดำเนินงานพื้นฐานของสแตก ประกอบด้วยกระบวนการ 3 ประการ คือ
1. Push คือ การนำข้อมูลใส่ลงไปในสแตก ซึ่งปกติแล้วก่อนที่จะนำข้อมูลเก็บลงในสแตกจะต้องมีการตรวจพื้นที่ในสแตกก่อนว่ามีที่เหลือว่างให้เก็บข้อมูลอีกหรือไม่
2. Pop คือ การเอาข้อมูลที่อยู่บนสุดในสแตก หรือที่ชี้ด้วยท๊อปออกจากสแตก เรียกว่าการ Pop ในการ Pop นั้นเราจะสามารถ Pop ข้อมูลจากสแตกได้เรื่อยๆจนกว่า ข้อมูลจะหมดสแตก หรือเป็นสแตกว่าง โดยก่อนที่จะนำข้อมูลออกจากสแตก จะต้องมีการตรวจสอบว่าในสแตกมีข้อมูลเก็บอยู่หรือไม่
3. Stack Top คือ การคัดลอกข้อมูลที่อยู่บนสุดของสแตก แต่ไม่ได้นำเอาข้อมูลนั้นออกจากสแตก

***ตัวอย่างของสแตก (LIFO)การเก็บลูกแบตมินตันใส่กล่อง คือ ลูกแบตลูกแรกจะอยู่ในสุดของกล่องแล้วเรียงต่อไปเรื่อยๆและถ้าเราจะหยิบลูกแบตลูกแรกออก เราจะต้องหยิบลูกที่เราใส่ไปทีหลังออกก่อน

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

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