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

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

บทที่ 2 Queue Queue.

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


งานนำเสนอเรื่อง: "บทที่ 2 Queue Queue."— ใบสำเนางานนำเสนอ:

1 บทที่ 2 Queue Queue

2 Queue Queue : ยังคงเป็น Linear list เป็นลักษณะการเข้าก่อนออกก่อนตามลำดับ (First Come First Served : FCFS หรือ First In First Out) Front คือ index หรือตำแหน่งของข้อมูลที่เข้าก่อน Rear คือ index หรือตำแหน่งของข้อมูลที่เข้าทีหลัง Front = Rear = 0 แสดงว่าเป็น Queue ว่าง Delete Insert Front Rear

3 Queue ตัวอย่าง ของ Queue เช่น การเข้าแถวเพื่อจองตัว,
Algorithm การ Insert Queue Insert_Queue( Q[ ],front,rear,Item) { if (rear == Max) Display(“Over flow”); Else { rear = rear +1; Q[rear] = Item; if(front == 0) front = 1; }

4 Queue สำหรับ - Search_Queue(Q,front,rear,Item)
- Display_ Queue(Q,front,rear) ให้นิสิตเขียนเอง

5 Queue Algorithm การ Delete Queue Del_Queue( Q[ ], front, rear)
{ item = Null; if (front == 0) Display(“Empty Queue”); else { item = Q[front]; if(front == rear) front = rear = 0; else front = front +1; } return item;

6 Queue Exam Insert A,B,Q,E A B Q E Delete B Q E Insert C B Q E C
f r Exam Insert A,B,Q,E A B Q E Delete B Q E Insert C B Q E C Insert H B Q E C (Over flow) *** จะเห็นว่า มีที่ว่างแต่ไม่สามารถ insert ได้ r f r f r f

7 Circular Queue Assigment จงเขียนโปรแกรมการ Insert, Del, Search และ Display ของ Queue Circular Queue เพื่อแก้ปัญหาการ Insert ไม่ได้ทั้งที มีที่ว่างในArray Linear. Circular Queue เป็นลักษณะ ของ visual circular ซึ่งที่จริงก็คือ Array นั้นเอง R

8 Circular Queue Insert_Cqueue(Q[ ], Front, Rear, Item)
{ if (Rear == Max) Rear = 1; else Rear = Rear + 1 ; if (Front == Rear) { if (Rear == 1) Rear = Max; else Rear = Rear -1 ; Display(“Over flow”); } else Q[Rear] = Item; If (Front == 0) Front = 1;

9 Circular Queue Delete_Cqueue(Q[ ], Front, Rear) { Item = Null;
if (Front == 0) Display(“Empty Queue”); else { Item = Q[Front]; if (Front == Rear) Front = Rear = 0; if (Front ==Max) Front = 1; else Front = Front + 1; } return Item;

10 Circular Queue Display_Cqueue(Q[ ], Front, Rear) { if (Front == 0)
Display(“Empty Queue”); else if (Front <= Rear) for(i = Front to Rear) Display(Q[i]); else { for(i = Front to Max) Display(Q[i]); for(i = 1 to Rear) }

11 Circular Queue การบ้าน ให้นักนิสิต เขียน Algorithm      1. Search_Cqueue(Q[ ], Front, Rear, Item)      2. Test_Empty_Chenalqueue(Q[ ], Front, Rear)


ดาวน์โหลด ppt บทที่ 2 Queue Queue.

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


Ads by Google