Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ******************************************************************************************************************************
- package linkedlist;
- /**
- * A Simple Linked List implementation of int values Adapted from textbook
- * @author Julie Anderson, M Raunak
- * @version 1.0 2/1/2014
- */
- public class IntegerLinkedList {
- private IntegerNode _head;
- private int _numOfItems;
- /**
- * default (no-arg) constructor. Constructs an empty list
- */
- public IntegerLinkedList() {
- _head = null;
- _numOfItems = 0;
- }
- /**
- * Accessor for numberOfItems
- *
- * @return numberOfItmes
- */
- public int getNumberOfItems() {
- return _numOfItems;
- }
- /**
- * insert method
- *
- * @param value data to insert inserts node at head
- */
- public void insert(int value) {
- System.out.println("Inserting " + value);
- // step 1: construct a new node
- IntegerNode nd = new IntegerNode(value);
- // step 2: update the links
- // whatever _head was referring to
- // will now be referred to by the new node = _head;
- nd.setNext(_head); // essentially nd.next
- // make _head now point to this newly created node (IntegerNode type of object)
- _head = nd;
- // increment the number of items
- _numOfItems++;
- }
- /**
- * delete method
- *
- * @param value the value to delete
- * @return true if value was deleted, false otherwise
- */
- public boolean delete(int value) {
- System.out.println("Attempting to delete " + value);
- IntegerNode current = _head;
- IntegerNode previous = null;
- // loop through the node
- while (current != null && current.getData() != value) {
- previous = current;
- current = current.getNext();
- }
- // if current is null, that means that we have come to the end
- // of the list i.e., we did not find the node we were looking for.
- if (current == null) // not found
- return false;
- else { // the item to delete has been found
- if (current == _head) // if the item to be deleted is the head
- _head = _head.getNext(); // delete head
- else
- previous.setNext(current.getNext());
- _numOfItems--;
- return true;
- }
- }
- /**
- * toString
- *
- * @return values in list separated by a space
- */
- public String toString() {
- String listString = "";
- IntegerNode currentNode = _head;
- for (int i = 0; i < _numOfItems; i++) {
- listString += currentNode.getData() + " ";
- currentNode = currentNode.getNext();
- }
- return listString;
- }
- public boolean insertAtEnd (int value) {
- IntegerNode current = _head;
- IntegerNode valueNode= new IntegerNode(value);
- while (current.getNext() != null) {
- current = current.getNext();
- }
- System.out.println("Inserting " + value);
- current.setNext(valueNode);
- _numOfItems++;
- return true;
- }
- }
- ******************************************************************************************************************************
- package linkedlist;
- /**
- * Represents a linked list Node of an int value Adapted from the text book.
- * @author Julie Anderson, M Raunak
- * @version 1.0 2/1/2014
- */
- public class IntegerNode {
- private int _data;
- private IntegerNode _nextNode;
- /**
- * default constructor
- * Sets _data to 0, and _next to null
- */
- public IntegerNode() {
- _data = 0;
- _nextNode = null;
- }
- /**
- * Overloaded constructor
- * @param data data value
- */
- public IntegerNode(int data) {
- _data = data;
- _nextNode = null;
- }
- /**
- * accessor (getter) for data
- * @return the value of the node
- */
- public int getData() {
- return _data;
- }
- /**
- * accessor (getter) for _next
- *
- * @return the reference to the next node
- */
- public IntegerNode getNext() {
- return _nextNode;
- }
- /**
- * mutator (setter) for _data
- *
- * @param newData the new value for the node
- */
- public void setData(int newData) {
- _data = newData;
- }
- /**
- * mutator(setter) for reference variable _next
- *
- * @param nextNode the new value for _next
- */
- public void setNext(IntegerNode nextNode) {
- _nextNode = nextNode;
- }
- }
- ********************************************************************************************************************************
- package linkedlist;
- import java.io.PrintWriter;
- import java.util.Scanner;
- /**
- * Uses and tests the IntegerLinkedList
- *
- * @author Anderson, Franceschi
- * @author Mohammad Raunak
- */
- public class IntegerLinkedListTest {
- public static void main(String[] args) {
- // construct empty IntegerLinkedList
- IntegerLinkedList numbers = new IntegerLinkedList();
- printItems(numbers);
- numbers.insert(2);
- numbers.insert(6);
- numbers.insert(3);
- numbers.insertAtEnd(12);
- printItems(numbers);
- /** numbers.insert(7); // insert in empty list
- printItems(numbers);
- numbers.insert(2); // insert in list with one item
- printItems(numbers);
- numbers.insert(5); // insert in list with two items
- printItems(numbers);
- if (!numbers.delete(8)) // unsuccessful - not in list
- System.out.println("8 could not be deleted:");
- printItems(numbers);
- if (numbers.delete(2)) // successful
- System.out.println("2 was successfully deleted:");
- printItems(numbers);
- if (numbers.delete(7)) // successful
- System.out.println("7 was successfully deleted:");
- printItems(numbers);
- if (numbers.delete(5)) // successful
- System.out.println("5 was successfully deleted:");
- printItems(numbers);
- if (!numbers.delete(8)) // unsuccessful - empty list
- System.out.println("8 could not be deleted:");
- printItems(numbers);
- */
- numbers.insertAtEnd(60);
- printItems(numbers);
- }
- public static void printItems(IntegerLinkedList linkedListOfInts){
- System.out.println("Number of items in the list: "
- + linkedListOfInts.getNumberOfItems() + " ==> " + linkedListOfInts.toString());
- }
- private String getOutputFileName() {
- Scanner scan = new Scanner(System.in);
- System.out.println("Please enter the name of THE FILE TO WRITE OUTPUT into");
- return scan.nextLine();
- }
- public void writeIntoTextFile() {
- String outFileName = getOutputFileName();
- try {
- // Create a PrintWriter object using the FileOutputStream and File
- PrintWriter pw = new PrintWriter(new FileOutputStream(new File(outFileName)));
- System.out.println("The Data that is getting written in file " + outFileName);
- for (PresidentInfo presInfoObj : presList) {
- pw.println( presInfoObj ); // the presInfoObj.toString() will get invoked
- System.out.println( presInfoObj );
- }
- pw.close(); // close the file resources
- System.out.println("PresidentInfo list has been successfully written to:" + outFileName);
- } catch (FileNotFoundException fnfe) {
- fnfe.printStackTrace();
- }
- }
- ********************************************************************************************************************************************************
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement