You are on page 1of 11

import java.util.

*;

class LinkedList

Node head = null;

static class Node

int data;

Node next;

public Node(int data)

this.data = data;

next = null;

void append(int data)

if(head == null)

head = new Node(data);

return;

Node temp = head;

while(temp.next != null)

temp = temp.next;

}
temp.next = new Node(data);

void prepend(int data)

Node temp;

temp = new Node(data);

temp.next = head;

head = temp;

void addMid(int data, int ref)

Node temp = head;

Node point = new Node(data);

while(temp.data != ref)

temp = temp.next;

point.next = temp.next;

temp.next = point;

// only element in list

void delFront()

if(head.next == null)
{

head = null;

return;

head = head.next;

void delBack()

Node temp = head;

// only element in list

if(temp.next == null)

head = null;

return;

while( temp.next.next != null)

temp = temp.next;

temp.next = null;

void delMid(int data)

Node temp = head;

if(head.data == data)

{
head = temp.next;

return;

while(temp.next.data != data && temp.next.next != null)

temp = temp.next;

if(temp.next.data == data)

temp.next = temp.next.next;

return;

if(temp.next.next == null && temp.next.data != data)

System.out.println("Element not in list");

return;

void delAt(int position)

Node temp = head;

if(position == 0)

head = temp.next;

return;

}
for(int i=0; i<position-1 && temp != null; i++)

temp = temp.next;

if(temp.next == null)

System.out.println("Position does not exist");

return;

temp.next = temp.next.next;

int findMid()

Node a = head;

Node b = head;

while(b.next != null)

a = a.next;

b = b.next.next;

return (a.data);

int find(int data)

{
int position = 0;

if(head.data == data)

return 0;

Node temp = head.next;

for(position = 1; temp != null && temp.data != data; position++)

temp = temp.next;

if(temp == null)

return -2;

return position;

int getCount()

Node temp = head;

int count = 0;

while(temp != null)

count++;

temp = temp.next;

return count;
}

void swap(int key1, int key2)

Node a = head;

Node b = head;

Node temp1, temp2;

if(head.data == key1)

while(b.next != null)

if(b.next.data != key2)

b = b.next;

if(b.next == null)

System.out.println("Invalid keys");

return;

temp1 = head.next;

head.next = b.next.next;

b.next.next = temp1;

temp2 = head;

head = b.next;

b.next = temp2;

return;

}
if(head.data == key2)

while(b.next != null)

if(b.next.data != key1)

b = b.next;

if(b.next == null)

System.out.println("Invalid keys");

return;

temp1 = head.next;

head.next = b.next.next;

b.next.next = temp1;

temp2 = head;

head = b.next;

b.next = temp2;

return;

while(a.next != null)

if(a.next.data != key1)

a = a.next;

while(b.next != null)

if(b.next.data != key2)
b = b.next;

if(b.next == null || a.next == null)

System.out.println("Invalid keys");

return;

temp1 = a.next;

a.next = b.next;

b.next = temp1;

temp2 = a.next.next;

a.next.next = b.next.next;

b.next.next = temp2;

void printList()

Node temp = head;

if(temp == null)

System.out.println(" ");

return;

while (temp != null)

System.out.print(temp.data + " ");

temp = temp.next;

}
}

public static void main(String args[])

LinkedList llink = new LinkedList();

int data, n=5, i;

for(i=0;i<n;i++)

System.out.println("Enter data " + (i+1) + " : ");

Scanner input = new Scanner(System.in);

data = input.nextInt();

llink.append(data);

/*int data2, ref;

System.out.println("Enter data to be deleted from mid:");

Scanner in = new Scanner(System.in);

data2 = in.nextInt();

System.out.println("Enter reference data:");

Scanner inp = new Scanner(System.in);

ref = inp.nextInt();*/

//System.out.println("Position: " + (llink.find(5)+1));

//llink.delAt(5);

llink.swap(1,7);

llink.printList();
//System.out.println("\nMiddle element: " + llink.findMid());

You might also like