double ended queue
ciri2 double ended queue :
- kosong : L = R + 1
- penuh kanan : R = n – 1
- penuh kiri : L = 0
- penuh kanan dan kiri : R = n – 1 && L = 0
- bisa diisi dari kanan : R < n
- bisa diisi dari kiri : L > 0
- ada isinya : L < R + 1
kondisi awal :
L = 0; R = -1;
algoritma dasar double ended queue :
- INSERT KANAN
R = R + 1; Q[R] = X;
- INSERT KIRI
L = L - 1; Q[L] = X;
- DELETE KANAN
X = Q[R]; R = R - 1;
- DELETE KIRI
X = Q[L]; L = L + 1;
algoritma lengkap double ended queue :
- INSERT KANAN
void INSERT_KANAN(void){ if(R < n-1){ R = R + 1; Q[R] = X; }else{ printf("antrian penuh kanan"); } }
- INSERT KIRI
void INSERT_KIRI(void){ if( L > 0){ L = L - 1; Q[L] = X; }else{ printf("antrian penuh kiri"); } }
- DELETE KANAN
void DELETE_KANAN(void){ if(L < R+1){ X = Q[R]; R = R - 1; }else{ printf("antrian kosong"); } }
- DELETE KIRI
void DELETE_KIRI(void){ if(L < R+1){ X = Q[L]; L = L + 1; }else{ printf("antrian kosong"); } }
No related posts.
Related posts brought to you by Yet Another Related Posts Plugin.
You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.


