1 / 15

คิว

คิว. ลักษณะการทำงานของ Queue การดำเนินการของ Queue การตรวจสอบ Queue Circle Queue ความแตกต่างระหว่าง Stack กับ Queue. Queue Structure. ลักษณะการทำงานของ Queue การนำสมาชิกใหม่ใส่ไปใน Queue จะใส่ที่ปลายด้านหนึ่ง เรียกว่าส่วนท้าย หรือ Rear

amal
Download Presentation

คิว

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. คิว ลักษณะการทำงานของ Queue การดำเนินการของ Queue การตรวจสอบ Queue Circle Queue ความแตกต่างระหว่าง Stack กับ Queue

  2. Queue Structure ลักษณะการทำงานของ Queue การนำสมาชิกใหม่ใส่ไปใน Queue จะใส่ที่ปลายด้านหนึ่ง เรียกว่าส่วนท้าย หรือ Rear การนำสมาชิกออกจาก Queue จะทำที่ปลายอีกด้านหนึ่ง เรียกว่าส่วนหน้า หรือ Front มีการจัดเก็บโดยอาศัยพื้นฐานของแถวลำดับและแบบ List

  3. ตัวอย่างลักษณะการทำงานของ Queue F R เป็นโครงสร้างแบบเข้าก่อน-ออกก่อน FIFOFirst In – First Out

  4. การดำเนินการของ Queue (Operation on Queue) การนำสมาชิกใหม่เข้าไปใน Queue (Add หรือInsert) ใช้คำสั่ง Enqหมายถึงให้นำ Item ซึ่งเป็นสมาชิก ใหม่เข้าไปต่อท้ายสมาชิกทุกตัวที่อยู่ในโครงสร้าง Queue การนำสมาชิกออกจาก Queue (Remove หรือ Delete) ใช้คำสั่ง Deqหมายถึงเอาสมาชิกตัวแรกหรือตัวหน้า สุดใน Queue ออกมา แล้วส่งสามารถผ่าน Item

  5. การตรวจสอบ Queue Queue ว่าง ใช้ฟังก์ชัน Empty Q Queue ว่างค่าเป็น True Queue ไม่ว่างค่าเป็น False Queue ว่างและพยายามที่จะนำข้อมูลออกจะเกิด Underflow Queue เต็ม ใช้ฟังก์ชัน Full Q Queue เต็มค่าเป็น True Queue ไม่เต็มค่าเป็น False Queue เต็มและพยายามจะนำข้อมูลเข้าจะเกิด Overflow

  6. การตรวจสอบ Queue การเคลียร์ Queue เมื่อเริ่มการดำเนินของ Queue จะต้องทำการเคลียร์ Queue ก่อนโดยใช้ Clear Q ตัวอย่าง F = 0 , R=0 Clear Q (Que) Enq (Que,4) F = 1 , R = 1 F R

  7. ตัวอย่าง (ต่อ) F = 1 , R = 2 Enq (Que,5) F R Enq (Que,7) F = 1 , R = 3 F R Enq (Que,8) Overflow F = 2 , R = 3 Item = 4 Deq (Que,Item) F R

  8. ตัวอย่าง (ต่อ) F = 3 , R = 3 Item = 5 Deq (Que,Item) F R Deq (Que,Item) F = 0 , R = 0 Item = 7 Deq (Que,Item) Underflow การเพิ่มข้อมูลเข้าต้องเข้าที่ Rear ของ Queue Rear = Rear + 1 การนำข้อมูลออกต้องทำที่ Front ตัวแรกออกไป Front = Front - 1

  9. โปรแกรมการเพิ่ม-ลดข้อมูลใน Queue Const n=20; Type itemtype = char; Queue = Array[1..N] of itemtype; Var Q : Queue; Front, Rear :0..N;

  10. โปรแกรมการเพิ่ม-ลดข้อมูลใน Queue (ต่อ) Procedure Enq (Var Q:Queue;X:itemtype); Begin • If Rear = n then writeln (‘Full Queue’) • Else Begin • Rear := Rear + 1 ; • Q[Rear] :=X;

  11. โปรแกรมการเพิ่ม-ลดข้อมูลใน Queue (ต่อ) • If Front = 0 then Front := 1; • End; • End; Procedure Deq (Var Q :Queue): itemtype; Begin • If Front = 0 then writeln (‘Empty Queue’) • Else

  12. โปรแกรมการเพิ่ม-ลดข้อมูลใน Queue (ต่อ) • Begin • Y := Q[Front]; • If Front = Rear then • Begin Front := 0, Rear :=0 • Else Front := Front + 1; End;

  13. Circle Queue เป็นการนำข้อมูลเข้าสู่ Queue โดยนำไปวางไว้ใน ส่วนหน้า (นำส่วนหน้ามาใช้อีกกรณีที่ส่วนหน้าว่าง) เช่น นำข้อมูลส่วนท้ายของ Queue(n) ไปต่อกับส่วนหน้าที่ตำแหน่ง Q(1) ตัวอย่าง F=1 , R = 1 Enq (Que,5) R F

  14. ตัวอย่าง(ต่อ) F=1 , R = 2 Enq (Que,3) F R Enq (Que,2) F=1 , R = 3 F R Deq (Que,Item) F=2 , R = 3 Item = 5 F R F=2 , R = 1 Enq (Que,4) R F

  15. Stack เข้าหลังออกก่อน ทำที่ส่วนปลาย การนำสมาชิกเข้า เรียกว่า Push การนำสมาชิกออกเรียกว่า Pop Queue เข้าก่อนออกก่อน ทำด้านใดด้านหนึ่งทั้งด้านหน้าด้านหลัง F , R การนำสมาชิกเข้า เรียกว่า Enq การนำสมาชิกออก เรียกว่า Deq ความแตกต่างระหว่าง Stack กับ Queue

More Related