งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

Queue Sanchai Yeewiyom School of Information & Communication Technology University of Phayao.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "Queue Sanchai Yeewiyom School of Information & Communication Technology University of Phayao."— ใบสำเนางานนำเสนอ:

1 Queue Sanchai Yeewiyom School of Information & Communication Technology University of Phayao

2 2 Queue A queue’s behavior is characterized as first in, first out (FIFO). Exp. การจัด queue ในการพิมพ์ของ network printer หรือการทำงานของ queue ใน operating system นำไปใช้ในเรื่อง simulation เช่น การ จำลองการหาเวลาที่น้อยที่สุดในการรอ

3 3 Queue Implementation Array Based Implementation Linear Queue Circular Queue Pointer Based Implementation Linear Queue Circular Queue

4 4 Array Based Implementation Linear Queue ABC 02134 frontrear

5 5 Linear Queue (Array Based) Insert ABCD 02134 front rear

6 6 Linear Queue (Array Based) Delete BCD 02134 front rear

7 7 Linear Queue (Array Based) Exp. Declaration and Initialize of Linear Queue const int max_queue = 5; typedef..(desired type).. queueitemtype; queueitemtype item[max_queue]; int front, rear; front = 0; rear = -1;

8 8 Linear Queue (Array Based) Insert const int max_queue = 5; int item[max_queue]; int front, rear; front = 0; rear = -1;

9 Linear Queue (Array Based) void q_insert (int x) { if (rear == max_queue – 1) { cout << “Queue Full” << endl; } else { rear ++; item[rear] = x; } 9

10 10 Linear Queue (Array Based) Delete

11 Linear Queue (Array Based) int q_delete (int& y) { if (rear < front) { cout << “Queue Empty” << endl; } else { y = item[front]; if (front == rear) { front = 0; rear = -1; } else { front ++; } return (y); } 11

12 12 Circular Queue (Array Based) Exp. Initialize Circular Queue front = 0; rear = max_queue – 1; count = 0;

13 13 Circular Queue (Array Based) max_queue = 5 0 1 2 3 4

14 14 Circular Queue (Array Based) การคำนวณเมื่อวนมาถึงตัวสุดท้ายของ queue rear = (rear + 1) % max_queue;

15 15 Circular Queue (Array Based) Exp. Add (Insert), Remove (Delete) from Queue

16 16 Pointer Based Implementation Linear Queue front rear

17 17 Linear Queue (Pointer Based) Add (Insert) front rear p

18 18 Linear Queue (Pointer Based) Add (Insert)

19 19 Linear Queue (Pointer Based) Remove (Delete) rear front temp front

20 20 Linear Queue (Pointer Based) Remove (Delete)

21 21 Circular Linked Queue Add (like a CLL) 58 rear newfrontptr rear

22 22 Circular Linked Queue Add newfrontptr -> next = rear -> next; rear -> next = newfrontptr; rear = newfrontptr;

23 23 Circular Linked Queue Add

24 24 Circular Linked Queue Remove 1058 frontptr rear

25 25 Circular Linked Queue Remove frontptr = rear -> next; y = frontptr -> data; rear -> next = frontptr -> next; frontptr -> next =null; delete frontptr; frontptr = null;

26 26 Circular Linked Queue Remove

27 Bank Transaction Time Application of Queue 27

28 28 Application of Queue Exp. การคำนวณระยะเวลาที่ใช้ในการรอ คอยของลูกค้าแต่ละคน ในการใช้บริการ Teller ของธนาคารแห่งหนึ่ง ซึ่งมีข้อมูล ดังนี้ เวลาที่มาถึงเวลาที่ใช้ในการรับบริการ คนที่ 1 205 คนที่ 2 224 คนที่ 3 232 คนที่ 4 303

29 Application of Queue Result of Simulation 29

30 Application of Queue Instance of Event List 30

31 Application of Queue Trace of Bank Simulation 31

32 ตามหลักการของคิว ข้อมูลที่เข้ามาก่อนจะมี สิทธิ์ออกก่อน (First In First Out:FIFO) อย่างไรก็ตาม มีบางครั้งที่เราต้องให้ข้อมูล บางประเภทได้ทำงานก่อนทั้งที่มาทีหลัง เนื่องจากได้รับอภิสิทธิ์ (priority) เช่น การ จัดคิวการเข้ารักษาของผู้ป่วยใน โรงพยาบาลตามความรุนแรง หรือกรณี ลูกค้าประจำจะได้รับการบริการก่อน ถึงแม้ จะเข้ามาทีหลัง เป็นต้น คิวลำดับความสำคัญ หรือ แถวคอยเชิงบุริมภาพ (Priority Queue)

33

34 ในการทำงานกับคิวแบบนี้ ต้องมีค่า อภิสิทธิ์ของแต่ละสมาชิกเก็บไว้ด้วย เพื่อ ใช้หาตำแหน่งที่อยู่ก่อนหน้าสมาชิกที่มี อภิสิทธิ์ต่ำกว่าและตามหลังสมาชิกที่มี อภิสิทธิ์เท่ากันหรือสูงกว่า typedef struct { int priority; char data; } Queue; Queue priority_queue[15]; Priority Queue

35 ... front = 0 rear = 4 Priority Queue

36 ... front = 0 rear = 4 ต้องการแทรก W ที่มีอภิสิทธิ์เท่ากับ 2 Priority Queue

37 ... front = 0 rear = 5 หลังแทรก W ที่มีอภิสิทธิ์เท่ากับ 2 Priority Queue


ดาวน์โหลด ppt Queue Sanchai Yeewiyom School of Information & Communication Technology University of Phayao.

งานนำเสนอที่คล้ายกัน


Ads by Google