Please complete this with comments and pseudo code. (in Java) This was answered
ID: 3867044 • Letter: P
Question
Please complete this with comments and pseudo code. (in Java)
This was answered on Chegg here: https://www.chegg.com/homework-help/questions-and-answers/using-generic-capabilities-java-50-modify-implementation-structure-singlylinkedlist-presen-q16261235
If it's correct please add pseudo code for it.
1. public class SinglyLinkedList 2. private Node h; list header public SinglyLinkedList) { h new Node(); // dummy node 6 h,next = null public boolean insert (Listing newListing) { Node n = new Node(); if(n null) // out of memory roturn false else 12 13 { n.next =h.next ; h, next = n; n.1 = newLi sting. deepCopy(); return true; 15 17 18 public Listing fetch (String targetKey) { Node p = h.next; 21. && l(p. 1 . compareTo (target Key) 0)) while (p |s null { p=p.next; = 23 24 25 26 27. 28 29. 30, if(p 1= null) return p.l.deepCopyO; else return null: public boolean deleto (String targetKey) { Node q=h; Node p = h.next; while (p != null && 32 ! (p. 1 . compareTo(targetKey) 0)) == 34 35 36 37. 38 39 40 41 p = p.next; 1= q.next if(p null) p,next; = return true: else return false 43 public boolean update (String targetKey, Listing newListing) if(delete(targetKey)false) 44. 45 46 47 48 49 return false else if(insert (newl isting) = false) roturn false; return true;Explanation / Answer
Source code:
public class SinglyLinkedListImpl<T> {
private Node<T> head;
private Node<T> tail;
public void add(T element){
Node<T> nd = new Node<T>();
nd.setValue(element);
System.out.println("Adding: "+element);
if(head == null){
head = nd;
tail = nd;
} else {
tail.setNextRef(nd);
}
tail = nd;
}
}
public void addAfter(T element, T after){
Node<T> tmp = head;
Node<T> refNode = null;
System.out.println("Traversing to all nodes..");
while(true){
if(tmp == null){
break;
}
if(tmp.compareTo(after) == 0){
refNode = tmp;
break;
}
tmp = tmp.getNextRef();
}
if(refNode != null){
Node<T> nd = new Node<T>();
nd.setValue(element);
nd.setNextRef(tmp.getNextRef());
if(tmp == tail){
tail = nd;
}
tmp.setNextRef(nd);
} else {
System.out.println("Unable to find the given element...");
}
}
public void deleteFront(){
if(head == null){
System.out.println("Underflow...");
}
Node<T> tmp = head;
head = tmp.getNextRef();
if(head == null){
tail = null;
}
System.out.println("Deleted: "+tmp.getValue());
}
public void deleteAfter(T after){
Node<T> tmp = head;
Node<T> refNode = null;
System.out.println("Traversing to all nodes..");
while(true){
if(tmp == null){
break;
}
if(tmp.compareTo(after) == 0){
refNode = tmp;
break;
}
tmp = tmp.getNextRef();
}
if(refNode != null){
tmp = refNode.getNextRef();
refNode.setNextRef(tmp.getNextRef());
if(refNode.getNextRef() == null){
tail = refNode;
}
System.out.println("Deleted: "+tmp.getValue());
} else {
System.out.println("Unable to find the given element...");
}
}
public void traverse(){
Node<T> tmp = head;
while(true){
if(tmp == null){
break;
}
System.out.println(tmp.getValue());
tmp = tmp.getNextRef();
}
}
public static void main(String a[]){
SinglyLinkedListImpl<Integer> sl = new SinglyLinkedListImpl<Integer>();
sl.add(3);
sl.add(32);
sl.add(54);
sl.add(89);
sl.addAfter(76, 54);
sl.deleteFront();
sl.deleteAfter(76);
sl.traverse();
}
}
class Node<T> implements Comparable<T> {
private T value;
private Node<T> nextRef;
public T getValue() {
return value;
}
public void setValue(T value) {
this.value = value;
}
public Node<T> getNextRef() {
return nextRef;
}
public void setNextRef(Node<T> ref) {
this.nextRef = ref;
}
public int compareTo(T arg) {
if(arg == this.value){
return 0;
} else {
return 1;
}
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.