Queue 204311การจัดการแฟ้มข้อมูลและโครงสร้างข้อมูล File Management and Data Structure
บรรยายครั้งที่ 3: Queue วัตถุประสงค์ : นักศึกษาสามารถ อธิบายโครงสร้างข้อมูลแบบ Queue ได้ถูกต้อง เขียนโปรแกรมด้วยภาษา Visual Basic ในการดำเดินการต่าง ๆ ตามโครงสร้างข้อมูลแบบ Queue ได้แก่การ Enqueue และ Dequeue
หัวข้อการบรรยาย แนะนำ Queue โอเปอร์เรชั่นพื้นฐานที่ทำกับคิว คิวรูปแบบอื่นๆ การประยุกต์ใช้คิว
แนะนำ Queue
แนะนำ Queue
แนะนำ Queue A B C
แนะนำ Queue A B C
แนะนำ Queue B C
แนะนำ Queue B C D
แนะนำ Queue B C D E
แนะนำ Queue B C D E
แนะนำ Queue E
ขบวนการพื้นฐานที่ทำกับคิว Front Rear Insert (Enqueue) Delete (Dequeue)
ขบวนการพื้นฐานที่ทำกับคิว ตัวอย่าง
ขบวนการพื้นฐานที่ทำกับคิว ตัวอย่าง Enqueue x F R
ขบวนการพื้นฐานที่ทำกับคิว ตัวอย่าง enqueue(Q, e) Q[R] = e 0 1 2 3 Q x e F R
ขบวนการพื้นฐานที่ทำกับคิว ตัวอย่าง enqueue(Q, e) Q[R] = e R = R+1 0 1 2 3 Q x e F R
ขบวนการพื้นฐานที่ทำกับคิว ตัวอย่าง enqueue(Q, e) Q[R++] = e 0 1 2 3 Q x e F R
ขบวนการพื้นฐานที่ทำกับคิว ตัวอย่าง Dequeue 0 1 2 3 Q x e F R
ขบวนการพื้นฐานที่ทำกับคิว ตัวอย่าง e dequeue(Q) return Q[R] 0 1 2 3 Q x e F R
ขบวนการพื้นฐานที่ทำกับคิว ตัวอย่าง e dequeue(Q) return Q[R] R = R-1 0 1 2 3 Q x F R
ขบวนการพื้นฐานที่ทำกับคิว ตัวอย่าง e dequeue(Q) return Q[R] R = R-1 0 1 2 3 Q x F R
ขบวนการพื้นฐานที่ทำกับคิว ตัวอย่าง e dequeue(Q) R = R-1 return Q[R] 0 1 2 3 Q x F R
ขบวนการพื้นฐานที่ทำกับคิว ตัวอย่าง e dequeue(Q) return Q[R--] 0 1 2 3 Q x F R
ขบวนการพื้นฐานที่ทำกับคิว // Queue.cpp #include <stdio.h> #include <conio.h> int front = 1; int rear = 0; void PrintQueue(char *); int Insert(char *, char); char Delete(char *); int IsEmpty(char *); // 0 Not Empty, 1 Empty int IsFull(char *); // 0 Not Full, 1 Full
ขบวนการพื้นฐานที่ทำกับคิว main() { char select=0; char queue[10] = {'\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0'}; char element; clrscr(); do printf("\n\nMenu\n"); printf("======\n"); printf("1. Insert\n"); printf("2. Delete\n"); printf("3. Exit\n"); printf("Please select operation: "); select = getche(); switch(select) { case '1': printf("\nEnter a character to insert: "); element = getche(); Insert(queue, element); break; case '2': printf("\nDelete queue and get: %c", Delete(queue)); default : } PrintQueue(queue); } while(select != '3'); return(0);
ขบวนการพื้นฐานที่ทำกับคิว printf("1. Insert\n"); printf("2. Delete\n"); printf("3. Exit\n"); printf("Please select operation: "); select = getche(); switch(select) { case '1': printf("\nEnter a character to insert: "); element = getche(); Insert(queue, element); break; case '2': printf("\nDelete queue and get: %c", Delete(queue)); default :
ขบวนการพื้นฐานที่ทำกับคิว int Insert(char * queue, char element) { queue[rear] = element; rear += 1; // incrase rear by 1 return rear; }
ขบวนการพื้นฐานที่ทำกับคิว char Delete(char * queue) { char frontelement; frontelement=queue[front]; queue[front]='\0'; front += 1; return(frontelement); }
ขบวนการพื้นฐานที่ทำกับคิว void PrintQueue(char * queue) { int i = 0; printf("\n\n "); for(i=0;i<10;i++) printf("| %c ", queue[i]); } printf("|"); printf("\n 0 1 2 3 4 5 6 7 8 9"); printf("\n\n Front: %d, Rear : %d", front, rear);
คิวรูปแบบอื่นๆ Circular Queue Priority Queue Linked Queue
คิวรูปแบบอื่นๆ Circular Queue
คิวรูปแบบอื่นๆ Priority Queue
คิวรูปแบบอื่นๆ Linked Queue
การประยุกต์ใช้คิว เรียงลำดับงาน Prioritize
หัวข้อการบรรยาย แนะนำ Queue โอเปอร์เรชั่นพื้นฐานที่ทำกับคิว คิวรูปแบบอื่นๆ การประยุกต์ใช้คิว