Single Link List Circular in Java
>> 1.28.2008
I am trying to write a program to implement single link list circular in java. Circular mean it has no null value in any next pointer of the node (node.next != null). In a circular linklist, the last node of the link will connects to the first node, so it's like the cycle.
The program still not working well... a little bit confuse in InsertFirst method, it's only working for two node to inputs.. when I try the third.. then the first will not display.. :(
Please somebody help me.....
public class Node {
    public int idata;
    public double ddata;
    public Node next;
    
    /** Creates a new instance of Node */
    public Node(int id, double dd) {
        idata = id;
        ddata = dd;
        next = null;       
    }
    
    public void displayNode(){
        System.out.print("{"+idata+","+ddata+"}");
    }
    
}
/** The LinkList Class */
public class SLLC {
    
    private Node head;
    
    /** Creates a new instance of SLLC */
    public SLLC() {
        head = null;
    }
    
    public boolean isEmpty(){
        return (head == null);
    }
    
    public void insertFirst(int id, double dd){
        Node bantu;
 Node baru = new Node(id, dd);
 baru.next = baru;
 if(isEmpty()){
   head=baru;
   head.next=head;
 }
 else {
  bantu = head;
  while(bantu.next != head){
   bantu=bantu.next;
  }
  baru.next = head;
  head = baru;
        bantu.next = head;
 }
    }
    
    public void displayList(){
 Node current;
        current = head;
 if(!isEmpty()){
   while(current!=head) {
       current.displayNode();
              current=current.next;  
   }
 } 
       
}
}
 
1 comments:
try this one
public void insertFirst(int id, double dd){
Node bantu;
Node baru = new Node(id, dd);
baru.next = baru;
if(isEmpty()){
head=baru;
head.next=head;
}
else {
if (head.next==head){
baru.next=head;
head.next=baru;
head = baru;
}else {
bantu = head;
while(bantu.next != head){
bantu=bantu.next;
}
baru.next = head;
bantu.next = baru;
head = baru;}
}
}
Post a Comment