In Java, create a program based on the UML below. Provide the pre-condition(s) a
ID: 3736516 • Letter: I
Question
In Java, create a program based on the UML below. Provide the pre-condition(s) and post-condition(s) as comment block to each method.
Class LinkedList private head Node private current Node size: int insertBefore(o) Add an object o before the current position insertAfter(o)- Add an object o after the current position remove(o) Object o is removed from the list currentData) Return the current object's data size) Return the number of objects on the list forward)- Move the current position forward one position backwardo Move the current position backward one position resetCurrent)- Reset the current position at the first element addFirst-Add object to the first of the list addLast)- Add object to the last of the list getFirst)- Get first object getLasto- Get last object removeFirst)- Remove first object removeLast)- Remove last objectExplanation / Answer
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() {
Node tempNode = current;
if(tempNode.Next!=null)
{
current = tempNode.Next;
}
}
// Move the current position backward one position
public void backward() {
// we can not move backward as the given list is the single linked list
}
// 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 tempNode = head;
Node newNode = new Node(o,tempNode);
head=newNode;
}
// resetCurrent at the first position
public void resetCurrent() {
Node tempNode = head;
head = current;
head.next=tempNode;
}
// Add object to the last of the list
public void addLast(Object o) {
Node tmpNode = head;
while(true){
if(tmpNode.Next == null){
Node newNode = new Node(o,null);
}
tempNode = tempNode.Next;
}
}
// Add an object o before the current position
public void insertBefore(Object o) {
// we can not add an object o before the current position given list is the single linked list
}
// Add an object o after the current position
public void insertAfter(Object o) {
Node tempNode = current;
current.Next = newNode(o,tempNode);
}
// Get first object
public Object getFirst() {
return head.Data;
}
// Get last object
public Object getLast() {
Node tmpNode = head;
while(true){
if(tmpNode.Next == null){
return tmpNode.Data;
}
tempNode = tempNode.Next;
}
}
// Remove the first object
public Object removeFirst() {
Node tempNode = head;
head = tempNode.Next;
}
// Remove the last object
public Object removeLast() {
Node tmpNode = head;
while(true){
if(tmpNode.Next == null){
curNode.Next=null;
}
curNode = tempNode;
tempNode = tempNode.Next;
}
}
// Remove object o from the list
public void remove(Object o) {
Node tmpNode = head;
while(true){
if(tmpNode.Data == o){
curNode.Next=tempNode.Next;
break;
}
if(tempNode.Next==null)
{
break;
}
curNode = tempNode;
tempNode = tempNode.Next;
}
}
// Returns the number of elements on the list
public int size() {
Node tmpNode = head;
int count=0;
while(true){
if(tempNode.Next==null)
{
return count;
}
count++;
tempNode = tempNode.Next;
}
}
// Is the list emptied?
public boolean isEmpty() {
if(head==null)
{
return true;
}
else
{
return 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 Smewhere", "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
lst.addFirst(instance1);
// test forward and backward for single entry
forward();
// now add instance2 and instance3 via addFirst and instance4,
lst.addFirst(instance2);
forward();
lst.insertAfter(instance3);
//instance5, instance6 via addLast
lst.addLast(instance5);
lst.addLast(instance6);
// move current forward a few times
forward();
forward();
// insert instance 9 after
lst.insertAfter(instance9);
// remove instance9
lst.remove(instance9)
// print out the first and last entries
System.out.println("Show the first entry and last entry:");
CsusStudent _first = lst.getFirst();
if(_first!=null)
{
System.out.println(_first.toString());
}
CsusStudent _last = lst.getLast();
if(_last!=null)
{
System.out.println(_last.toString());
}
// print out the whole list
System.out.println("Show the whole list:");
System.out.println(lst.toString());
// remove entries starting from the last entry
System.out.println("Check for the content of the emptied list");
System.out.println(lst.isEmpty());
}
}
public class CsusStudent {
// class attributes
private String studentName;
private int studentId;
private String studentAddress;
private String studentPhone;
private String studentEmail;
// constructor
public CsusStudent(String newName, int newId, String newAddress, String newPhone_number, String newEmail){
this.studentName = newName;
this.studentId = newId;
this.studentAddress = newAddress;
this.studentPhone = newPhone_number;
this.studentEmail = newEmail;
}
// setName
public void setName(String newName){
this.studentName = newName;
}
// getName
public String getName(){
return studentName;
}
// setID
public void setId(int newId){
this.studentId = newId;
}
// getID
public int getId(){
return studentId;
}
// setAddress
public void setAddress(String newAddress){
this.studentAddress = newAddress;
}
// getAddress
public String getAddress(){
return studentAddress;
}
// setPhone
public void setPhone(String newPhone_number){
this.studentPhone = newPhone_number;
}
// getPhone
public String getPhone(){
return studentPhone;
}
// setEmail
public void setEmail(String newEmail){
this.studentEmail = newEmail;
}
// getEmail
public String getEmail(){
return studentEmail;
}
// toString
public String toString() {
return "studentName=" + studentName + ", studentId=" + studentId + ", studentAddress="
+ studentAddress + ", studentPhone=" + studentPhone + ", studentEmail=" + studentEmail;
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.