Single Linked List in java.

package LinkedList;
class sll{
    Node head;
    Node tail;
    int size;
void printSize(){
    System.out.println("size is = "+size);
}
void print(){
if(head==null){
    System.out.println("List is empty");
    return;
}
System.out.println("linked list is =>");
Node temp=head;
while(temp!=null){
    System.out.print(temp.val+" ");
    temp=temp.next;
}
System.out.println();
}
void deleteAtStart(){
if(head==null){
    System.out.println("list is empty");
    return;
}
// only one node
if(head==tail){
    head=tail=null;
}
else{
    head = head.next;
}
    size--;
}
void deleteAtIndex(int ix){
    if(ix<0 || ix>=size){
    throw new RuntimeException("invalid index");
    }
    if(ix==0){
    deleteAtStart();
    return;
    }
    Node x = head;
    for(int i=0; i<ix-1; i++){
    x=x.next;
    }
    if(x.next==tail)
    tail=x;
    x.next=x.next.next;
    size--;
}
void set(int ix, int val){
    if(head==null){
        throw new RuntimeException("List is empty");
    }
    if(ix<0 || ix>=size){
        throw new RuntimeException("Invalid index");
    }
    if(ix==0){
        head.val = val;
        return;
    }
    if(ix==size-1){
        tail.val=val;
        return;
    }
    Node x = head;
    for (int i = 0; i < ix; i++) {
        x = x.next;
    }
    x.val = val;
}
void insertAtIndex(int ix , int val){
if(ix<0 || ix>size){
throw new RuntimeException("invalid index");
}
if(ix==0){
    insertAtStart(val);
    return;
}
if(ix==size){
    insertAtEnd(val);
    return;
}
Node temp = new Node(val);
Node x=head;
for(int i=0; i<ix-1; i++){
    x=x.next;
}
temp.next=x.next;
x.next=temp;
size++;
}
void insertAtStart(int val){
Node temp= new Node(val);
if(head==null){
head=tail=temp;
size++;
return;
}
temp.next=head;
head=temp;
size++;
}
void insertAtEnd(int val){
if(head==null){
insertAtStart(val);
return;
}
Node temp = new Node(val);
tail.next=temp;
tail=temp;
size++;
}
}
public class ImplementationSingleLinkedList {
public static void main(String[] args) {
sll l = new sll();
l.insertAtEnd(10);
l.insertAtEnd(20);
l.print();
l.printSize();
l.insertAtStart(8);
l.insertAtStart(7);
l.print();
l.printSize();
l.insertAtIndex(2,9);
l.print();
l.printSize();
l.deleteAtStart();
l.print();
l.printSize();
l.deleteAtIndex(3);
l.print();
l.printSize();
l.deleteAtIndex(1);
l.print();
l.printSize();
System.out.println(l.head.val);
System.out.println(l.tail.val);
}
}

Comments

Popular posts from this blog

Introduction of java Programming language.

Stack data structure.