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;
}
}
}
Langganan:
Posting Komentar (Atom)
Tidak ada komentar:
Posting Komentar