These are 2 methods in java for a generic node class and I c

These are 2 methods in java for a generic node class and I cannot figure them out.

toString() creates and returns a string message which reveals the stored value (data) but not the link (this method is not recursive)

toString(int dum) creates and returns a string message which reveals the stored value (data) and the links (recursive). This method is applicable for shorter lists only.

here is the node class

public class Node
{
private T data;
private Node link;
  
Node(T initialData, Node initialLink){
this.data = initialData;
this.link = initialLink;
}
public Node addNodeAfter(T element){
link = new Node(element,link);
return link;
}
public void removeNodeAfter(Node head){
int x =0;
Node cursor;

cursor = head;
  
for (x = 1; x < listLength(head); x++) {

  
cursor = cursor.link;
  

}
cursor.data = null;


  

}

/*
*/

public static Node listCopy(Node source){
Node copyHead;
Node copyTail;
  
if(source == null){
return null;
}
copyHead = new Node(source.getData(), null);
copyTail = copyHead;
  
while(source.link != null){
source = source.link;
copyTail.addNodeAfter(source.data);
copyTail = copyTail.link;
}
return source;
}
public static Object listPosition(Node head, long position){
Node cursor;
int i = 1;
  
if(position <= 0){
throw new IllegalArgumentException(\"position is not positive.\");
}
cursor = head;
for (i = 1; (i < position)&&(cursor != null); i++) {

cursor = cursor.link;
  
}
return cursor.getData();
}
  
public static int listLength(Node head){
Node cursor;
int answer = 0;
  
for(cursor = head; cursor != null; cursor = cursor.link){
answer++;
}
return answer;
}
public static Node getTail(Node source){
int i;
Node cursor;
cursor = source;
  
for(i=1; i < listLength(source); i++){
cursor = cursor.link;
}
return cursor;
}
public void setLink(Node newLink){
link = newLink;
}
public void setData(T newData){
data = newData;
}

public T getData() {
return data;
}

public Node getLink() {
return link;
}
  
}

Solution

public class Node<T> {

   private T data;

   private Node link;

   Node(T initialData, Node initialLink) {

       this.data = initialData;

       this.link = initialLink;

   }

   public Node addNodeAfter(T element) {

       link = new Node(element, link);

       return link;

   }

   public void removeNodeAfter(Node head) {

       int x = 0;

       Node cursor;

       cursor = head;

       for (x = 1; x < listLength(head); x++) {

           cursor = cursor.link;

       }

       cursor.data = null;

   }

   /*

   */

   public static Node listCopy(Node source) {

       Node copyHead;

       Node copyTail;

       if (source == null) {

           return null;

       }

       copyHead = new Node(source.getData(), null);

       copyTail = copyHead;

       while (source.link != null) {

           source = source.link;

           copyTail.addNodeAfter(source.data);

           copyTail = copyTail.link;

       }

       return source;

   }

   public static Object listPosition(Node head, long position) {

       Node cursor;

       int i = 1;

       if (position <= 0) {

           throw new IllegalArgumentException(\"position is not positive.\");

       }

       cursor = head;

       for (i = 1; (i < position) && (cursor != null); i++) {

           cursor = cursor.link;

       }

       return cursor.getData();

   }

   public static int listLength(Node head) {

       Node cursor;

       int answer = 0;

       for (cursor = head; cursor != null; cursor = cursor.link) {

           answer++;

       }

       return answer;

   }

   public static Node getTail(Node source) {

       int i;

       Node cursor;

       cursor = source;

       for (i = 1; i < listLength(source); i++) {

           cursor = cursor.link;

       }

       return cursor;

   }

   public void setLink(Node newLink) {

       link = newLink;

   }

   public void setData(T newData) {

       data = newData;

   }

   public T getData() {

       return data;

   }

   public Node getLink() {

       return link;

   }

  

  

public String toString(){

       return \" \" + this.data;

  

   }

}
================================================

public String toString(int dum) {

String s1 = \"\";

String s2 = \"\";

if (data == null) {

s1 = \"data: dummy\";

} else {

s1 = \"data: \" + data.toString();

}

if (link == null) {

s2 = \"link: null in tail\";

} else {

s2 = \"link: \" + link.toString();

}

return s1 + \"\ \" + s2;

  

}

These are 2 methods in java for a generic node class and I cannot figure them out. toString() creates and returns a string message which reveals the stored valu
These are 2 methods in java for a generic node class and I cannot figure them out. toString() creates and returns a string message which reveals the stored valu
These are 2 methods in java for a generic node class and I cannot figure them out. toString() creates and returns a string message which reveals the stored valu
These are 2 methods in java for a generic node class and I cannot figure them out. toString() creates and returns a string message which reveals the stored valu
These are 2 methods in java for a generic node class and I cannot figure them out. toString() creates and returns a string message which reveals the stored valu

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site