Queue นั้นเป็นของโครงสร้างฐานข้อมูลที่มีลักษณะเรียงต่อกันเป็นแถว เมื่อมีการเพิ่มข้อมูลใหม่เข้าไปภายในคิวจะต้องต่อท้าย หรือ ( rear ) และเมื่อมีการนำข้อมูลออกจากคิวจะต้องออกทางหัวของโครงสร้างเท่านั้นหรือที่เรียกกันว่า (front) โครงสร้างของ Queue นั้นจะมีลักษณะเป็นเชิงเส้นคล้าย ๆ กับโครงสร้างของ Stack แต่ทั้ง 2 โครงสร้างนั้นจะมีตัวชี้วัดที่แตกต่างกันเช่น ของ Queue นั้นจะมีตัวชี้วัดคือ front และ rear ดังนั้นการทำงานในการดึงข้อมูลเข้าและออกของ Queueนั้นจะมีลักษณะเป็นแบบ FIFO ( First In First Out ) อธิบายสั้น ๆก็คือ การที่ข้อมูลไหนเข้าไปในฐานข้อมูลก่อนข้อมูลนั้นก็ต้องออกก่อน เป็นต้น
ภาพตัวอย่างของ Queue Queue นั้นมี Operation ในการดึงข้อมูลเข้าออกดังนี้
1.Enqueue = การเพิ่มข้อมูลเข้าไปใน Queue
2.Dequeue = การนำข้อมูลออกจาก Queue
โค้ดของการ Enqueue
โค้ด: เลือกทั้งหมด
addq ( int data )
{
if ( rear == MAX-1 ) {
printf ( "\nQueue is full" );
return;
} else {
rear++ ;
arr[rear] = data;
if ( front == -1 )
front = 0;
}
}
โค้ดในส่วนของการลบข้อมูลภายใน Queue
โค้ด: เลือกทั้งหมด
delq( )
{ int data ;
if ( front == -1 )
{ printf ( "\nQueue is Empty" ) ;
return NULL ;
}
data = arr[front] ;
if ( front == rear )
front = rear = -1 ;
else
front++ ;
return data ;
}
Algorithms ของการทำ Enqueue Algorithms ของการทำ Dequeue
อ้างอิง : sci.rmutt.ac.th