Sie sind auf Seite 1von 11

//SOUVIK & SOUMODIP

A program to implement a linked list that can insert,delete,display & search


elements & reverse a list.

class Node
{
protected int data;
protected Node link;
public Node()
{
data=0;
link=null;
}
public Node(int d,Node n)
{
data =d;
link=n;
}
public void setLink(Node n)
{
link=n;
}
public void setData(int d)
{
data=d;
}
public Node getLink()
{
return link;
}
public int getData()
{
return data; }
}
public class linkedList
{
public Node start;
public int size;
public linkedList()
{
start=null;
}
public boolean isEmpty()
{
return start==null;
}
public void insert(int val)
{
Node nptr,ptr,save=null;
nptr=new Node(val,null);
boolean ins=false;
if(start==null)
start=nptr;
else if(val<=start.getData())
{
nptr.setLink(start);
start=nptr;
}
else
{
save=start;
ptr=start.getLink();
while(ptr!=null)
{
if(val>=save.getData() && val<=ptr.getData())
{
save.setLink(nptr);
nptr.setLink(ptr);
ins=true;
break;
}
else
{
save=ptr;
ptr=ptr.getLink();
}
}
if(ins==false)
save.setLink(nptr);
}
size++;}
public boolean delete(int val)
{
boolean res=false;
if(start.getData()==val)
{
start=start.getLink();
res=true;
}
else
{
Node ptr,save;
save=start;
ptr=start.getLink();
while(ptr!=null)
{
if(ptr.getData()==val)
{
Node nxt=ptr.getLink();
save.setLink(nxt);
res=true;
break;
}
else
{
save=ptr;
ptr=ptr.getLink();
}
}
}
if(res==true)
size--;
return res;}
public void search(int val)
{
Node ptr=start;
int pos=1;
while(ptr!=null)
{
if(ptr!=null)
{
if(ptr.getData()==val)
{
System.out.println("Item "+val+" found at position "+pos);
break;
}
else
{
ptr=ptr.getLink();
pos++;
}
}
if(ptr==null)
{
System.out.println("Item"+val+"is not in the list.");
}
}
}
public void Reverse()
{
Node fp=start,lp=null,save,ptr;
int tmp, n=size/2;
for(int a=0;a<n;++a)
{
save=ptr=start;
while(ptr != lp)
{
save=ptr;
ptr=ptr.getLink();
}
lp=save;
tmp=fp.getData();
fp.setData(lp.getData());
lp.setData(tmp);
fp=fp.getLink();
}
}
public void display()
{
Node ptr=start;
while(ptr.getLink()!=null)
{
System.out.print(ptr.getData()+"---->");
ptr=ptr.getLink();
}
System.out.print(ptr.getData()+"!!!!");
System.out.println();
}
}
import java.io.*;
public class Link_list_test
{
public static void main()throws IOException
{
linkedList s=new linkedList();
BufferedReader br=new BufferedReader(new
InputStreamReader(System.in));
while(true)
{
System.out.println("Enter your choice");
System.out.println("Enter 1. to insert");
System.out.println("Enter 2. to delete");
System.out.println("Enter 3. to Display");
System.out.println("Enter 4. to search");
System.out.println("Enter 5. to reverse the list");
System.out.println("Enter 6. to exit");
int ch=Integer.parseInt(br.readLine());
if(ch==1)
{
System.out.print("Enter a number: ");
int n=Integer.parseInt(br.readLine());
s.insert(n);
System.out.println("The inserted element is: "+n);
}
else if(ch==2)
{
System.out.print("Enter the number to be deleted:");
int val=Integer.parseInt(br.readLine());
boolean res=s.delete(val);
if(res==true)
System.out.println(val+" Deleted successfully. ");
else
System.out.println("Sorry no such node available!!");
}
else if(ch==3)
{
System.out.println("Your Linked List is as follows:");
s.display();
}
else if(ch==4)
{
System.out.print("Enter the number to be searched: ");
int v=Integer.parseInt(br.readLine());
s.search(v);
}
else if(ch==5)
{
System.out.println("Previous list:");
s.display();
s.Reverse();
System.out.println("Reversed list:");
s.display();
}
else if(ch==6)
break;
else
System.out.println("Sorry no option for your choice");
}
}
}
SAMPLE OUTPUT

Enter your choice


Enter 1. to insert
Enter 2. to delete
Enter 3. to Display
Enter 4. to search
Enter 5. to reverse the list
Enter 6. to exit
1
Enter a number: 2
The inserted element is: 2
Enter your choice
Enter 1. to insert
Enter 2. to delete
Enter 3. to Display
Enter 4. to search
Enter 5. to reverse the list
Enter 6. to exit
1
Enter a number: 3
The inserted element is: 3
Enter your choice
Enter 1. to insert
Enter 2. to delete
Enter 3. to Display
Enter 4. to search
Enter 5. to reverse the list
Enter 6. to exit
1
Enter a number: 4
The inserted element is: 4
Enter your choice
Enter 1. to insert
Enter 2. to delete
Enter 3. to Display
Enter 4. to search
Enter 5. to reverse the list
Enter 6. to exit
1
Enter a number: 8
The inserted element is: 8
Enter your choice
Enter 1. to insert
Enter 2. to delete
Enter 3. to Display
Enter 4. to search
Enter 5. to reverse the list
Enter 6. to exit
1
Enter a number: 9
The inserted element is: 9
Enter your choice
Enter 1. to insert
Enter 2. to delete
Enter 3. to Display
Enter 4. to search
Enter 5. to reverse the list
Enter 6. to exit
2
Enter the number to be deleted:2
2 Deleted successfully.
Enter your choice
Enter 1. to insert
Enter 2. to delete
Enter 3. to Display
Enter 4. to search
Enter 5. to reverse the list
Enter 6. to exit
3
Your Linked List is as follows:
3---->4---->8---->9!!!!
Enter your choice
Enter 1. to insert
Enter 2. to delete
Enter 3. to Display
Enter 4. to search
Enter 5. to reverse the list
Enter 6. to exit
4
Enter the number to be searched: 4
Item 4 found at position 2
Enter your choice
Enter 1. to insert
Enter 2. to delete
Enter 3. to Display
Enter 4. to search
Enter 5. to reverse the list
Enter 6. to exit
5
Previous list:
3---->4---->8---->9!!!!
Reversed list:
9---->8---->4---->3!!!!
Enter your choice
Enter 1. to insert
Enter 2. to delete
Enter 3. to Display
Enter 4. to search
Enter 5. to reverse the list
Enter 6. to exit
6

Das könnte Ihnen auch gefallen