public class LinkedList { // Defined Node class private class Node { private Obj
ID: 3737805 • Letter: P
Question
public class LinkedList {
// Defined Node class
private class Node {
private Object Data = null;
private Node Next = null;
public Node() {
Data = null;
Next = null;
}
public Node(Object element) {
Data = element;
}
public Node(Object o, Node n) {
Data = o;
Next = n;
}
public void setNext(Node n) {
Next = n;
}
public Node getNext() {
return Next;
}
public Object getElement() {
return Data;
}
public void setElement(Object element) {
Data = element;
}
}
// Internal data for LinkedList
private Node head = null;
private Node current = null;
private int size = 0;
// LinkedList constructor
public LinkedList() {
head = null;
current = head;
}
// Move the current position forward one position
public void forward() {
current = current.Next;
}
// Move the current position backward one position
public void backward() {
Node temp = head;
while(temp.Next != current) {
temp = temp.Next;
}
current = temp;
}
// Get current object's data element
public Object currentData() {
return current.Data;
}
// Add object to the first of the list
public void addFirst(Object o) {
Node newNode = new Node(o);
newNode.Next = head;
head = newNode;
size ++;
}
// resetCurrent at the first position
public void resetCurrent() {
current = head;
}
// Add object to the last of the list
public void addLast(Object o) {
Node newNode = new Node(o);
if(head == null) {
head = newNode;
size ++;
return;
}
newNode.Next = null;
Node last = head;
while (last.Next != null)
last = last.Next;
last.Next = newNode;
size ++;
}
// Add an object o before the current position
public void insertBefore(Object o) {
Node newNode = new Node(o);
Node temp = head, beforeNode=null;
while(temp!=null && temp.next!=newNode){
beforeNode = temp;
temp = temp.next;
}
}
// Add an object o after the current position
public void insertAfter(Object o) {
Node newNode = new Node(o, null);
newNode.Next = current.Next;
current.Next = newNode;
size ++;
}
// Get first object
public Object getFirst() {
return head.Data;
}
// Get last object
public Object getLast() {
Node temp = head;
while(temp != null)
temp = temp.Next;
return temp.Data;
}
// Remove the first object
public Object removeFirst(){
Node temp = head;
head = head.Next;
size --;
return temp.Data;
}
// Remove the last object
public Object removeLast() {
Node temp = head;
while(temp.Next != null)
temp = temp.Next;
Node p = temp.Next;
temp.Next = null;
size --;
return p.Data;
}
// Remove object o from the list
public void remove(Object o) {
Node temp = head, prev = null;
// If head node itself holds the key to be deleted
if (temp != null && temp.Data == o) {
head = temp.Next; // Changed head
return;
}
// Search for the key to be deleted, keep track of the
// previous node as we need to change temp.next
while (temp != null && temp.Data != o) {
prev = temp;
temp = temp.Next;
}
// If key was not present in linked list
if (temp == null)
return;
// Unlink the node from linked list
prev.Next = temp.Next;
size --;
}
// Returns the number of elements on the list
public int size() {
return size;
}
// Is the list emptied?
public boolean isEmpty() {
return size == 0 ? true : false;
}
// Display a content of a list
public String toString() {
String r = "( HEAD -> ";
// Node l = head.getNext();
Node l = head;
while (l != null) {
r = r + l.getElement() + " -> " ;
l = l.getNext();
}
return r + " )";
}
public static void main(String args[]) {
LinkedList lst = new LinkedList();
// creat instances for testing
CsusStudent instance1 = new CsusStudent("John Doe 1", 1, "1 Somewhere", "916-555-1211", "johndoe1@somewhere.com");
CsusStudent instance2 = new CsusStudent("John Doe 2", 2, "2 Somewhere", "916-555-1212", "johndoe2@somewhere.com");
CsusStudent instance3 = new CsusStudent("John Doe 3", 3, "3 Somewhere", "916-555-1213", "johndoe3@somewhere.com");
CsusStudent instance4 = new CsusStudent("John Doe 4", 4, "4 Somewhere", "916-555-1214", "johndoe4@somewhere.com");
CsusStudent instance5 = new CsusStudent("John Doe 5", 5, "5 Somewhere", "916-555-1215", "johndoe5@somewhere.com");
CsusStudent instance6 = new CsusStudent("John Doe 6", 6, "6 Somewhere", "916-555-1216", "johndoe6@somewhere.com");
CsusStudent instance7 = new CsusStudent("John Doe 7", 7, "7 Somewhere", "916-555-1217", "johndoe7@somewhere.com");
CsusStudent instance8 = new CsusStudent("John Doe 8", 8, "8 Somewhere", "916-555-1218", "johndoe8@somewhere.com");
CsusStudent instance9 = new CsusStudent("John Doe 9", 9, "9 Somewhere", "916-555-1219", "johndoe9@somewhere.com");
// begin adding instance1 to the list
// test forward and backward for single entry
// now add instance2 and instance3 via addFirst and instance4, instance5, instance6 via addLast
// move current forward a few times
// insert instance 9 after
// remove instance9
// print out the first and last entries
System.out.println("Show the first entry and last entry:");
// print out the whole list
System.out.println("Show the whole list:");
// remove entries starting from the last entry
System.out.println("Check for the content of the emptied list");
}
}
-----------------------------------------------------------------------------------
import org.junit.Assert;
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
public class LinkedListTest1 {
/** Fixture initialization (common initialization
* for all tests). **/
CsusStudent instance1, instance2, instance3, instance4, instance5, instance6, instance7, instance8;
@Before public void setUp() {
instance1 = new CsusStudent("John Doe 1", 1, "1 Somewhere", "916-555-1211", "johndoe1@somewhere.com");
instance2 = new CsusStudent("John Doe 2", 2, "2 Somewhere", "916-555-1212", "johndoe2@somewhere.com");
instance3 = new CsusStudent("John Doe 3", 3, "3 Somewhere", "916-555-1213", "johndoe3@somewhere.com");
instance4 = new CsusStudent("John Doe 4", 4, "4 Somewhere", "916-555-1214", "johndoe4@somewhere.com");
instance5 = new CsusStudent("John Doe 5", 5, "5 Somewhere", "916-555-1215", "johndoe5@somewhere.com");
instance6 = new CsusStudent("John Doe 6", 6, "6 Somewhere", "916-555-1216", "johndoe6@somewhere.com");
instance7 = new CsusStudent("John Doe 7", 7, "7 Somewhere", "916-555-1217", "johndoe7@somewhere.com");
instance8 = new CsusStudent("John Doe 8", 8, "8 Somewhere", "916-555-1218", "johndoe8@somewhere.com");
}
// test addFirst and getFirst
@Test public void testaddGetFirst() {
LinkedList lst = new LinkedList();
lst.addFirst(instance1);
int expResult = 1;
assertEquals(expResult, lst.size());
CsusStudent instance = (CsusStudent) lst.getFirst();
assertEquals("John Doe 1", instance.getName());
}
// test list traversal 1 with forward, getFirst, and getLast
@Test public void testTraversal1() {
LinkedList lst = new LinkedList();
lst.addFirst(instance1);
lst.addFirst(instance2);
lst.addFirst(instance3);
lst.addLast(instance4);
lst.addLast(instance5);
lst.addLast(instance6);
lst.forward();
lst.forward();
lst.insertAfter(instance7);
CsusStudent stf = (CsusStudent)lst.getFirst();
CsusStudent stl = (CsusStudent)lst.getLast();
assertEquals("John Doe 3", stf.getName());
assertEquals("John Doe 6", stl.getName());
}
// test list traversal 2 with backward, getFirst, getLast, and size
@Test public void testTraversal2() {
LinkedList lst = new LinkedList();
lst.addFirst(instance1);
lst.addFirst(instance2);
lst.addFirst(instance3);
lst.addLast(instance4);
lst.addLast(instance5);
lst.addLast(instance6);
lst.backward();
lst.backward();
lst.insertBefore(instance7);
CsusStudent stf = (CsusStudent)lst.getFirst();
CsusStudent stl = (CsusStudent)lst.getLast();
assertEquals("John Doe 7", stf.getName());
assertEquals("John Doe 6", stl.getName());
assertEquals(7,lst.size());
}
}
keep getting errors
LinkedList.java:171: error: cannot find symbol
while(temp!=null && temp.next!=newNode){
^
symbol: variable next
location: variable temp of type LinkedList.Node
LinkedList.java:173: error: cannot find symbol
temp = temp.next;
^
symbol: variable next
location: variable temp of type LinkedList.Node
LinkedList.java:339: error: cannot find symbol
CsusStudent instance1 = new CsusStudent("John Doe 1", 1, "1 Somewhere", "916-555-1211", "johndoe1@somewhere.com");
^
symbol: class CsusStudent
location: class LinkedList
LinkedList.java:339: error: cannot find symbol
CsusStudent instance1 = new CsusStudent("John Doe 1", 1, "1 Somewhere", "916-555-1211", "johndoe1@somewhere.com");
^
symbol: class CsusStudent
location: class LinkedList
LinkedList.java:341: error: cannot find symbol
CsusStudent instance2 = new CsusStudent("John Doe 2", 2, "2 Somewhere", "916-555-1212", "johndoe2@somewhere.com");
^
symbol: class CsusStudent
location: class LinkedList
LinkedList.java:341: error: cannot find symbol
CsusStudent instance2 = new CsusStudent("John Doe 2", 2, "2 Somewhere", "916-555-1212", "johndoe2@somewhere.com");
^
symbol: class CsusStudent
location: class LinkedList
LinkedList.java:343: error: cannot find symbol
CsusStudent instance3 = new CsusStudent("John Doe 3", 3, "3 Somewhere", "916-555-1213", "johndoe3@somewhere.com");
^
symbol: class CsusStudent
location: class LinkedList
LinkedList.java:343: error: cannot find symbol
CsusStudent instance3 = new CsusStudent("John Doe 3", 3, "3 Somewhere", "916-555-1213", "johndoe3@somewhere.com");
^
symbol: class CsusStudent
location: class LinkedList
LinkedList.java:345: error: cannot find symbol
CsusStudent instance4 = new CsusStudent("John Doe 4", 4, "4 Somewhere", "916-555-1214", "johndoe4@somewhere.com");
^
symbol: class CsusStudent
location: class LinkedList
LinkedList.java:345: error: cannot find symbol
CsusStudent instance4 = new CsusStudent("John Doe 4", 4, "4 Somewhere", "916-555-1214", "johndoe4@somewhere.com");
^
symbol: class CsusStudent
location: class LinkedList
LinkedList.java:347: error: cannot find symbol
CsusStudent instance5 = new CsusStudent("John Doe 5", 5, "5 Somewhere", "916-555-1215", "johndoe5@somewhere.com");
^
symbol: class CsusStudent
location: class LinkedList
LinkedList.java:347: error: cannot find symbol
CsusStudent instance5 = new CsusStudent("John Doe 5", 5, "5 Somewhere", "916-555-1215", "johndoe5@somewhere.com");
^
symbol: class CsusStudent
location: class LinkedList
LinkedList.java:349: error: cannot find symbol
CsusStudent instance6 = new CsusStudent("John Doe 6", 6, "6 Somewhere", "916-555-1216", "johndoe6@somewhere.com");
^
symbol: class CsusStudent
location: class LinkedList
LinkedList.java:349: error: cannot find symbol
CsusStudent instance6 = new CsusStudent("John Doe 6", 6, "6 Somewhere", "916-555-1216", "johndoe6@somewhere.com");
^
symbol: class CsusStudent
location: class LinkedList
LinkedList.java:351: error: cannot find symbol
CsusStudent instance7 = new CsusStudent("John Doe 7", 7, "7 Somewhere", "916-555-1217", "johndoe7@somewhere.com");
^
symbol: class CsusStudent
location: class LinkedList
LinkedList.java:351: error: cannot find symbol
CsusStudent instance7 = new CsusStudent("John Doe 7", 7, "7 Somewhere", "916-555-1217", "johndoe7@somewhere.com");
^
symbol: class CsusStudent
location: class LinkedList
LinkedList.java:353: error: cannot find symbol
CsusStudent instance8 = new CsusStudent("John Doe 8", 8, "8 Somewhere", "916-555-1218", "johndoe8@somewhere.com");
^
symbol: class CsusStudent
location: class LinkedList
LinkedList.java:353: error: cannot find symbol
CsusStudent instance8 = new CsusStudent("John Doe 8", 8, "8 Somewhere", "916-555-1218", "johndoe8@somewhere.com");
^
symbol: class CsusStudent
location: class LinkedList
LinkedList.java:355: error: cannot find symbol
CsusStudent instance9 = new CsusStudent("John Doe 9", 9, "9 Somewhere", "916-555-1219", "johndoe9@somewhere.com");
^
symbol: class CsusStudent
location: class LinkedList
LinkedList.java:355: error: cannot find symbol
CsusStudent instance9 = new CsusStudent("John Doe 9", 9, "9 Somewhere", "916-555-1219", "johndoe9@somewhere.com");
^
symbol: class CsusStudent
location: class LinkedList
20 errors
Explanation / Answer
Error 1:
Cant find sysmbol next.
location: variable temp of type LinkedList.Node
LinkedList.java:173: error: cannot find symbol
temp = temp.next;
^
symbol: variable next
Node class defines member Next not next. So while loop should look like below
while(temp!=null && temp.Next!=newNode){
beforeNode = temp;
temp = temp.Next;
}
Please change the temp.next to temp.Next to resolve the error.
Error 2:
Can not find class CsusStudent
symbol: class CsusStudent
location: class LinkedList
LinkedList.java:347: error: cannot find symbol
CsusStudent instance5 = new CsusStudent("John Doe 5", 5, "5 Somewhere", "916-555-1215", "johndoe5@somewhere.com");
^
No class defind in the name of CsusStudent. So please define a class CsusStudent as below inside LinkedList class or in seperate file called CsusStudent.java
public class CsusStudent {
String name;
int id;
String address;
String phoneNumber;
String email;
public CsusStudent(String name, int id, String address, String phone, String email) {
// TODO Auto-generated constructor stub
this.name = name;
this.id = id;
this.address = address;
this.phoneNumber = phone;
this.email = email;
}
}
Please follow below steps.
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.