double ended queue

May 30th, 2009 | Posted by
Contoh Double Ended Queue

Contoh Double Ended Queue

ciri2 double ended queue :

  1. kosong : L = R + 1
  2. penuh kanan : R = n – 1
  3. penuh kiri : L = 0
  4. penuh kanan dan kiri : R = n – 1 && L = 0
  5. bisa diisi dari kanan : R < n
  6. bisa diisi dari kiri : L > 0
  7. ada isinya : L < R + 1

kondisi awal :

L = 0;
R = -1;

algoritma dasar double ended queue :

  1. INSERT KANAN
    R = R + 1;
    Q[R] = X;
  2. INSERT KIRI
    L = L - 1;
    Q[L] = X;
  3. DELETE KANAN
    X = Q[R];
    R = R - 1;
  4. DELETE KIRI
    X = Q[L];
    L = L + 1;


algoritma lengkap double ended queue :

  1. INSERT KANAN
    void INSERT_KANAN(void){
      if(R < n-1){
         R  =  R + 1;
         Q[R]  =  X;
      }else{
         printf("antrian penuh kanan");
      }
    }
  2. INSERT KIRI
    void INSERT_KIRI(void){
      if( L > 0){
          L = L - 1; 
          Q[L]  =  X;
      }else{
          printf("antrian penuh kiri");
      }
    }
  3. DELETE KANAN
    void DELETE_KANAN(void){
      if(L < R+1){
         X  =  Q[R];
         R   =   R - 1;
      }else{
        printf("antrian kosong");
      }
    }
  4. DELETE KIRI
    void DELETE_KIRI(void){
      if(L < R+1){
         X = Q[L];
         L = L + 1;
      }else{
         printf("antrian kosong");
      }
    }

Related posts:

  1. circular queue
  2. double stack
  3. single stack
Tags:
No comments yet.
*