Java
Only Do Method, I will give LinkedList Implementation
Write a method checkForEquality to be included in class KWLinkedList that does not have any parameter. Assume the list is having even number of nodes. The method returns true if the first half of the list is equal to the second half of the list in the reverse order, otherwise it returns false. If the list is empty, the method returns false;
import java.util.NoSuchElementException;/** Implementation of the interface StackInt using a linked list. The* top element of the stack is in the first (front) node of the linked list.*/public class LinkedStack implements StackInt{/** Node: inner class to create nodes for linked list based stack. */private static class Node{// Data Fieldsprivate E data;private Node next; // The reference to the next node.// Constructors/*** Creates a new node with a null next field.* @param dataItem The data to be stored in the node*/private Node(E dataItem){data = dataItem;next = null;}/*** Creates a new node that references another node.* @param dataItem The data to be stored in the node* @param nodeRef The node referenced by new node*/private Node(E dataItem, Node nodeRef){data = dataItem;next = nodeRef;}} //End of class Node// Data Field: The reference to the first node of the stack.private Node topOfStack;// Constructorpublic LinkedStack(){topOfStack = null; // Initially the stack is empty}// copy constructorpublic LinkedStack(LinkedStack other){if(other.isEmpty()) tofOfStack=null;else{Node newNode = new Node (other.topOfStack.data);topOfStack = newNode;Node ptr= other.topOdStack.next;Node ptr1 = topOdStack;while (ptr != null){newNode = new Node(ptr.data);ptr1.next=newNode;ptr = ptr.next;ptr1=ptr1.next;}}}/*** Insert a new item on top of the stack.* @post The new item is the top item on the stack.* @param obj The item to be inserted* @return The item that was inserted*/@Overridepublic E push(E obj){topOfStack = new Node(obj, topOfStack);return obj;}/*** Remove and return the top item on the stack.* @pre The stack is not empty.* @post The top item on the stack has been removed and* the stack is one item smaller.* @return The top item on the stack* @throws NoSuchElementException, if the stack is empty*/@Overridepublic E pop(){if (isEmpty()) {throw new NoSuchElementException();}else {E result = topOfStack.data;topOfStack = topOfStack.next;return result;}}/*** Return the top item on the stack.* @pre The stack is not empty.* @post The stack remains unchanged.* @return The top item on the stack* @throws NoSuchElementException if the stack is empty*/@Overridepublic E peek(){if (isEmpty()) {throw new NoSuchElementException();}else {return topOfStack.data;}}/*** See whether the stack is empty.* @return true if the stack is empty*/@Overridepublic boolean isEmpty(){return (topOfStack == null);}} // End of class LinkedStack
/** Node: inner class to create nodes for linked list based stack. */private static class Node{// Data Fieldsprivate E data;private Node next; // The reference to the next node.// Constructors/*** Creates a new node with a null next field.* @param dataItem The data to be stored in the node*/private Node(E dataItem){data = dataItem;next = null;}/*** Creates a new node that references another node.* @param dataItem The data to be stored in the node* @param nodeRef The node referenced by new node*/private Node(E dataItem, Node nodeRef){data = dataItem;next = nodeRef;}} //End of class Node// Data Field: The reference to the first node of the stack.private Node topOfStack;// Constructorpublic LinkedStack(){topOfStack = null; // Initially the stack is empty}// copy constructorpublic LinkedStack(LinkedStack other){if(other.isEmpty()) tofOfStack=null;else{Node newNode = new Node (other.topOfStack.data);topOfStack = newNode;Node ptr= other.topOdStack.next;Node ptr1 = topOdStack;while (ptr != null){newNode = new Node(ptr.data);ptr1.next=newNode;ptr = ptr.next;ptr1=ptr1.next;}}}/*** Insert a new item on top of the stack.* @post The new item is the top item on the stack.* @param obj The item to be inserted* @return The item that was inserted*/@Overridepublic E push(E obj){topOfStack = new Node(obj, topOfStack);return obj;}/*** Remove and return the top item on the stack.* @pre The stack is not empty.* @post The top item on the stack has been removed and* the stack is one item smaller.* @return The top item on the stack* @throws NoSuchElementException, if the stack is empty*/@Overridepublic E pop(){if (isEmpty()) {throw new NoSuchElementException();}else {E result = topOfStack.data;topOfStack = topOfStack.next;return result;}}/*** Return the top item on the stack.* @pre The stack is not empty.* @post The stack remains unchanged.* @return The top item on the stack* @throws NoSuchElementException if the stack is empty*/@Overridepublic E peek(){if (isEmpty()) {throw new NoSuchElementException();}else {return topOfStack.data;}}/*** See whether the stack is empty.* @return true if the stack is empty*/@Overridepublic boolean isEmpty(){return (topOfStack == null);}} // End of class LinkedStack
// Constructors/*** Creates a new node with a null next field.* @param dataItem The data to be stored in the node*/private Node(E dataItem){data = dataItem;next = null;}
/*** Creates a new node that references another node.* @param dataItem The data to be stored in the node* @param nodeRef The node referenced by new node*/private Node(E dataItem, Node nodeRef){data = dataItem;next = nodeRef;}} //End of class Node// Data Field: The reference to the first node of the stack.private Node topOfStack;// Constructorpublic LinkedStack(){topOfStack = null; // Initially the stack is empty}// copy constructorpublic LinkedStack(LinkedStack other){if(other.isEmpty()) tofOfStack=null;else{Node newNode = new Node (other.topOfStack.data);topOfStack = newNode;Node ptr= other.topOdStack.next;Node ptr1 = topOdStack;while (ptr != null){newNode = new Node(ptr.data);ptr1.next=newNode;ptr = ptr.next;ptr1=ptr1.next;}}}/*** Insert a new item on top of the stack.* @post The new item is the top item on the stack.* @param obj The item to be inserted* @return The item that was inserted*/@Overridepublic E push(E obj){topOfStack = new Node(obj, topOfStack);return obj;}/*** Remove and return the top item on the stack.* @pre The stack is not empty.* @post The top item on the stack has been removed and* the stack is one item smaller.* @return The top item on the stack* @throws NoSuchElementException, if the stack is empty*/@Overridepublic E pop(){if (isEmpty()) {throw new NoSuchElementException();}else {E result = topOfStack.data;topOfStack = topOfStack.next;return result;}}/*** Return the top item on the stack.* @pre The stack is not empty.* @post The stack remains unchanged.* @return The top item on the stack* @throws NoSuchElementException if the stack is empty*/@Overridepublic E peek(){if (isEmpty()) {throw new NoSuchElementException();}else {return topOfStack.data;}}/*** See whether the stack is empty.* @return true if the stack is empty*/@Overridepublic boolean isEmpty(){return (topOfStack == null);}} // End of class LinkedStack
// Constructorpublic LinkedStack(){topOfStack = null; // Initially the stack is empty}// copy constructorpublic LinkedStack(LinkedStack other){if(other.isEmpty()) tofOfStack=null;else{Node newNode = new Node (other.topOfStack.data);topOfStack = newNode;Node ptr= other.topOdStack.next;Node ptr1 = topOdStack;while (ptr != null){newNode = new Node(ptr.data);ptr1.next=newNode;ptr = ptr.next;ptr1=ptr1.next;}}}/*** Insert a new item on top of the stack.* @post The new item is the top item on the stack.* @param obj The item to be inserted* @return The item that was inserted*/@Overridepublic E push(E obj){topOfStack = new Node(obj, topOfStack);return obj;}/*** Remove and return the top item on the stack.* @pre The stack is not empty.* @post The top item on the stack has been removed and* the stack is one item smaller.* @return The top item on the stack* @throws NoSuchElementException, if the stack is empty*/@Overridepublic E pop(){if (isEmpty()) {throw new NoSuchElementException();}else {E result = topOfStack.data;topOfStack = topOfStack.next;return result;}}/*** Return the top item on the stack.* @pre The stack is not empty.* @post The stack remains unchanged.* @return The top item on the stack* @throws NoSuchElementException if the stack is empty*/@Overridepublic E peek(){if (isEmpty()) {throw new NoSuchElementException();}else {return topOfStack.data;}}/*** See whether the stack is empty.* @return true if the stack is empty*/@Overridepublic boolean isEmpty(){return (topOfStack == null);}} // End of class LinkedStack
/*** Insert a new item on top of the stack.* @post The new item is the top item on the stack.* @param obj The item to be inserted* @return The item that was inserted*/@Overridepublic E push(E obj){topOfStack = new Node(obj, topOfStack);return obj;}/*** Remove and return the top item on the stack.* @pre The stack is not empty.* @post The top item on the stack has been removed and* the stack is one item smaller.* @return The top item on the stack* @throws NoSuchElementException, if the stack is empty*/@Overridepublic E pop(){if (isEmpty()) {throw new NoSuchElementException();}else {E result = topOfStack.data;topOfStack = topOfStack.next;return result;}}/*** Return the top item on the stack.* @pre The stack is not empty.* @post The stack remains unchanged.* @return The top item on the stack* @throws NoSuchElementException if the stack is empty*/@Overridepublic E peek(){if (isEmpty()) {throw new NoSuchElementException();}else {return topOfStack.data;}}/*** See whether the stack is empty.* @return true if the stack is empty*/@Overridepublic boolean isEmpty(){return (topOfStack == null);}} // End of class LinkedStack
/*** Remove and return the top item on the stack.* @pre The stack is not empty.* @post The top item on the stack has been removed and* the stack is one item smaller.* @return The top item on the stack* @throws NoSuchElementException, if the stack is empty*/@Overridepublic E pop(){if (isEmpty()) {throw new NoSuchElementException();}else {E result = topOfStack.data;topOfStack = topOfStack.next;return result;}}
/*** Return the top item on the stack.* @pre The stack is not empty.* @post The stack remains unchanged.* @return The top item on the stack* @throws NoSuchElementException if the stack is empty*/@Overridepublic E peek(){if (isEmpty()) {throw new NoSuchElementException();}else {return topOfStack.data;}}
/*** See whether the stack is empty.* @return true if the stack is empty*/@Overridepublic boolean isEmpty(){return (topOfStack == null);}
} // End of class LinkedStack
Already registered? Login
Not Account? Sign up
Enter your email address to reset your password
Back to Login? Click here