Kamis, 14 Februari 2013
Main Code Circular Queue
import java.util.Scanner;
class tes{
public static void main(String [] ags){
Scanner in=new Scanner(System.in);
Scanner ni=new Scanner(System.in);
int input;
String isi;
boolean loop=true,loop0=true;
System.out.println("Jumlah isi:");
input=in.nextInt();
System.out.println("");
MyCircularQue coba=new MyCircularQue(input);
do{
System.out.println("Isi:");
isi=ni.nextLine();
if(isi.equals("end")){
loop=false;
}
else if(isi.matches("([-0-9]*)")){
input=Integer.parseInt(isi);
coba.insert(input);
}
else{
System.out.println("Input Salah");
}
}while(loop);
System.out.println("");
do{
System.out.println("Remove :");
isi=ni.nextLine();
if(isi.equals("tidak")){
loop0=false;
}
else if(isi.equals("ya")){
System.out.println(coba.remove());
}
else{
System.out.println("Input Salah");
}
}while(loop0);
}
}
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:
Komentar (Atom)