Morgast’s Weblog

Just another WordPress.com weblog

Double

Double link list

class Doublelist {
//attribute declarations
int awal,akhir,jnode;
int max_node=100;
Node item[]=new Node[max_node];

//constructor
public Doublelist(){
for (int i=0;i<max_node;i++) {
item [i] = new Node(0);
}
awal=-1;
akhir=-1;
jnode=0;
}

//accessor for node number
public int getTotalNode() {
return jnode;
}

//insert method
public void insert(int data, int pos=0) {
if(jnode==0) {
item[0].setData(data);
awal =0;
akhir=0;
jnode++;
} else{
if (jnode<max_node) {
// find empty locations
int p=FindEmpty();

//insert node at the beginning of list
if (pos==0) {
item[p].setNext(awal);
item[awal].setPrev(p);
item[p].setdata(data);
awal =p;
jnode++;

//insert node at the end of list
} else if(pos<jnode) {
item[akhir].setNext(p);
item[p].setPrev(akhir);
item[p].setdata(data);
akhir=p;
jnode++;

//insert node in the list
}else {
// position is closer to the end
if (pos>jnode/2) {
int I = akhir;
for(i=0;i=jnode-pos-1;i++) {
i= item[i].getPrev();
}
item[p].setPrev(item[i].getPrev());
item[p].setNext(i);
item[i].setdata(p);
item[item[p].getPrev()].setNext(p);
item[p].setData(data);
jnode++;

//position is closer to beginning
} else {
int i = awal;
for(i=0;i<pos-1;i++) {
i=item[i].getNext();
}
item[p].setNext(item[i].getNext());
item[p].setPrev(i);
item[i].setNext(p);
item[item[p].getNext()].setPrev(p);
item[p].setData(data);
jnode++;
}
}else {
System.out.println(“List is full”);
}
}return;
}

private int FindEmpty() {
int i;
for (i=0;i<max_code;i++) {
if(item[i].getNext() == -1 && i!=akhir) {
return i;
}
}
return (-1);
}
}

//end of class

Node

Class Node {
int prev, data, next;

public Node (int n){
data = n;
prevlink = -1;
nextlink = -1;
}

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

public int getData() {
return data;
}

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

public int getPrev(){
return prevlink;
}

public void setNext(int n){
nextlink = n;
return;
}

public getNext(){
return nextlink;
}

Maret 24, 2010 - Posted by | Uncategorized

Belum ada komentar.

Tinggalkan komentar