Exercise: Given the starter code consisting of ListOfNodes.java and Node.java, complete the implementation of all the methods in ListOfNodes.java without changing the code in Node.java or main(). You should start by commenting all the lines in main and gradually implement the methods then run the code after each method comparing the real output to the expected out listed here. The following are some rules and guidelines you must follow: a. Read all the methods and decide if some of them will call on others b. Reuse methods whenever possible c. You are encouraged to write private helper methods d. You cannot use the LinkedList class provided by the Java Framework The expected output is:

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

Java Exercise:

Given the starter code consisting of ListOfNodes.java and Node.java, complete the implementation of all the methods in ListOfNodes.java without changing the code in Node.java or main(). You should start by commenting all the lines in main and gradually implement the methods then run the code after each method comparing the real output to the expected out listed here. The following are some rules and guidelines you must follow:
a. Read all the methods and decide if some of them will call on others
b. Reuse methods whenever possible
c. You are encouraged to write private helper methods
d. You cannot use the LinkedList class provided by the Java Framework
The expected output is:
[], 0
[l], 1
[el], 2
[Hel], 3
[Helo], 4
[Hello], 5
[ABCDE], 5
A
B
C
D
E
[ABCDE], 5

[ABCCDE], 6
[ACXCDC], 6
[AXCDC], 5
1
C
[AXCD], 4
D
[AXC], 3
C
[AX], 2
X
[A], 1
A
[], 0
[abcde], 5
[badce], 5
[$badce], 6
[b$daec], 6

 

the classes:

ListOfNodes.java

public class ListOfNodes {
static Node head;

public static void main(String[] args) {
// don't change the code
print();
addFirst('l');
print();
addFirst('e');
print();
addMiddle(0, 'H');
print();
addMiddle(count() - 1, 'o');
print();
addMiddle(count() - 2, 'l');
print();
for (int i = 0; i < count(); i++) {
set(i, (char) (65 + i));
}

print();

for (int i = 0; i < count(); i++) {
System.out.println(get(i));
}

print();
addMiddle(2, 'C');
print();

set(1,'C');
set(2,'X');
set(5,'C');
print();

int c = removeFirstOccurrence('C');
print();
System.out.println(c);

while(count()>0) {
c = removeLast();
System.out.println((char)c);
print();
}

addFirst('e'); addFirst('d'); addFirst('c'); addFirst('b'); addFirst('a');
print();

swapPairs();
print();

addFirst('$');
print();

swapPairs();
print();
}

public static int count() {
//return the number of nodes in the chain of nodes that starts at head
//your code here
}

public static void addFirst(char data) {
//creates a new node, sets its data value, and makes it the first node in the chain
//your code here
}

public static String print() {
//returns all the elements (characters) of the node between square brackets [] followed by a comma then the number of nodes
//ex: [hello],5
//your code here
}

public static void addMiddle(int index, char data) {
//creates a new node, sets its data value, and inserts it right after the node whose number in the chain is index
//your code here
}

public static void set(int index, char data) {
//changes the data value of the node located at position index
//your code here
}

public static char get(int index) {
//returns the char stored in the node located at position index
//your code here
}

public static char removeLast() {
//removes the last node in the chain
//your code here
}

public static void swapPairs(){
//swaps element 0 with element 1, element 2 with element 3, element 4 with element 5, etc.
//if the list has an odd number of elements, the the last element remains the same
//ex: ['a','b','c','d','e'] will become ['b','a','d','c','e'] after calling on swapPairs
}
}

 

Node.java

public class Node {
// don't change the code
public char data;
public Node next;

public Node(char data) {
this.data = data;
}
public Node(char data, Node next) {
this(data);
this.next = next;
}
}

Expert Solution
steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Math class and its different methods
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education