PDA

View Full Version : LinkedList



chetah
02-23-2010, 09:20 AM
public class LinkedList<T>{
private Node head;


public LinkedList()
{
head = null;
}

public boolean isEmpty()
{
return (head==null);
}

public void addToHead(T val )
{
Node n = new Node(val);
n.next = head;
head = n;
}


public T getHeadData(){
if(head == null){
throw new RuntimeException("attempt to get data from an empty list !");
}
else{
return head.data;
}
}

public void deleteHead(){
if(head == null){
throw new RuntimeException("Deleting from an empty list !");
}else{
head= head.next;
}
}

public void addToTail(T val)//show no result
{
Node n = new Node (val);
if(head==null)
head = n;
else{
Node curr = head;
curr = curr.next;
curr.next = n;
addToTail(val);
}
}//end addtail



public void delete(T val){//does not return a result (shows no errors)
Node curr=null;
if(head !=null){
if(head.data==val)
head = head.next;
else{
curr = head;
curr = curr.next;
delete(curr.data);
}
}
}

public void insertSorted(T val){
Node y = new Node(val);

if(head==null || val < head.data)//operator < cannot be applied to T, T
head = y;
else
head = head.next;
insertSorted(head.data);
}


public boolean contains(T val)
{

if(head!=null){
if(head.data==val)
return true;
head = head.next;
return contains(val);
}
return false;

}//end of contains


public String toString(){
String str = " ";
Node curr = head;
while(curr !=null){
str = str + curr.data +" ";
curr = curr.next;
}
return str + "\n";
}


public class Node{
public T data;
public Node next;

public Node(T val){
data = val;
next = null;
}
}//End of node class
}//Linked List


class TestLinkedList{
public static void main(String[] args){

LinkedList<Integer>ST = new LinkedList<Integer>();

for(int i = 0; i < 10; i++){ //correctly load linkedlist
ST.addToHead(i);
}


System.out.println(ST.toString()); //print list


boolean y = ST.contains(12);
System.out.println(y);


ST.addToTail(200); //returns nothing
System.out.println(ST.toString());


ST.delete(5);
System.out.println(ST.toString());

insertSorted(11);
System.out.println(ST.toString());

}//end main
}//end class

Need help.
public void addToTail(T val)
public void delete(T val)
public void insertSorted(T val)
I need help to get the above functions to work recursively. I am able to get them work iteratively, no problem. When I try to write the functions re cursively, I am not able to see any results. I am at a lost understanding why.