Calendar

Kamis, 14 Februari 2013

Source Code Circular Queue


//package CQueue;


public class MyCircularQue {

private BagianTubuh list[];

private int PalingBelakang, PalingDepan;

private int JumlahSemua;

private int jmlBagianTubuh;

private boolean kosong;

    

public MyCircularQue() {

JumlahSemua=3;

PalingBelakang=-1;
PalingDepan=-1; jmlBagianTubuh=0;

kosong=true;

list=new BagianTubuh[JumlahSemua];

for(int x=0;x<JumlahSemua;x++)
list[x]=new BagianTubuh();
}
      


public MyCircularQue(int z) {

JumlahSemua=z;

PalingBelakang=-1; PalingDepan=-1;
jmlBagianTubuh=0;

kosong=true;

list=new BagianTubuh[JumlahSemua];

for(int x=0;x<JumlahSemua;x++)
                  
list[x]=new BagianTubuh();
}



public void insert(int r) {

int p, q;


if(kosong==true){

p=0;

list[p].setData(r);

list[p].setPrev(p);

list[p].setNext(p);


PalingDepan=p;

PalingBelakang=p;

jmlBagianTubuh++;

kosong = false;


}else if(kosong==false && jmlBagianTubuh<JumlahSemua) {

if(PalingDepan==JumlahSemua-1){

p=PalingDepan;

q=PalingBelakang;


PalingDepan=0;


list[PalingDepan].setData(r);

list[PalingDepan].setPrev(p);

list[PalingDepan].setNext(PalingBelakang);


list[PalingBelakang].setPrev(PalingDepan);

list[p].setNext(PalingDepan);


jmlBagianTubuh++;

} else {

p=PalingDepan;

q=PalingBelakang;


PalingDepan++;


list[PalingDepan].setData(r);

list[PalingDepan].setPrev(p);

list[PalingDepan].setNext(PalingBelakang);


list[PalingBelakang].setPrev(PalingDepan);


list[p].setNext(PalingDepan);


jmlBagianTubuh++;

}

} else if
(jmlBagianTubuh==JumlahSemua){

if(PalingDepan==JumlahSemua-1){

p = PalingBelakang;

PalingBelakang++;

PalingDepan=0;

list[p].setData(r);

}else if(PalingBelakang==JumlahSemua-1){

p = PalingBelakang;

PalingBelakang=0;

PalingDepan++;

list[p].setData(r);

}else{

p = PalingBelakang;

PalingBelakang++;

PalingDepan++;

list[p].setData(r);

}

}


}


public int remove(){

int p, q;

p=0;

q=0;


if(jmlBagianTubuh==0){

//Sqstem.out.print(" Queue is kosong ");
 
q=0;


} else if(jmlBagianTubuh==1) {

q=list[p].getData();

p=PalingBelakang;

PalingBelakang=-1;

PalingDepan=-1;

list[p].setData(0);

list[p].setPrev(-1);

list[p].setNext(-1);

jmlBagianTubuh--;

kosong=true;

}else if(PalingBelakang==JumlahSemua-1){

p=PalingBelakang;

q=list[p].getData();

PalingBelakang=0;

list[p].setData(0);
list[p].setPrev(-1);

list[p].setNext(-1);


list[PalingDepan].setNext(PalingBelakang);

list[PalingBelakang].setPrev(PalingDepan);

jmlBagianTubuh--;

}else{

p=PalingBelakang;
 
q=list[p].getData();

PalingBelakang++;

list[p].setData(0);

list[p].setPrev(-1);

list[p].setNext(-1);


list[PalingDepan].setNext(PalingBelakang);

list[PalingBelakang].setPrev(PalingDepan);

jmlBagianTubuh--;
}

return q;
}



      
      
      


class BagianTubuh {
  

private int prev, Next;
  
private int data;
  
  

public BagianTubuh(){
      
data = 0; prev = -1; Next=-1;
    }
  
  
/*public BagianTubuh(int n){
      
data = n; prev = -1; Next = -1;      
  
}*/
  
  

public void setPrev(int n){
      
prev = n;
    }
  
  

public int getPrev(){
      
return prev;
    }
  
  

public void setNext(int n){
      
Next = n;
    }
  
  

public int getNext(){
      
return Next;
    }
  
  

public void setData(int n){
      
data = n;
    }

  

public int getData(){
      
return data;
    }
}
}

Tidak ada komentar:

Posting Komentar