(2)Algorithm

Embed Size (px)

DESCRIPTION

Algorithm

Citation preview

/** Source code example for "A Practical Introductionto DataStructures and Algorithm Analysis, 3rd Edition (Java)"by Clifford A. ShafferCopyright 2008-2011 by Clifford A. Shaffer*//** Array-based list implementation */class AList implements List {private static final int defaultSize = 10; // Defaultsizeprivate int maxSize; // Maximum size of listprivate int listSize; // Current # of list itemsprivate int curr; // Position of currentelementprivate E[] listArray; // Array holding listelements/** Constructors *//** Create a list with the default capacity. */AList() { this(defaultSize); }/** Create a new list object.@param size Max # of elements list can contain.*/@SuppressWarnings("unchecked") // Generic arrayallocationAList(int size) {maxSize = size;listSize = curr = 0;listArray = (E[])new Object[size]; // CreatelistArray}public void clear() // Reinitialize the list{ listSize = curr = 0; } // Simply reinitialize values/** Insert "it" at current position */public void insert(E it) {assert listSize < maxSize : "List capacity exceeded";for (int i=listSize; i>curr; i--) // Shift elements uplistArray[i] = listArray[i-1]; // to make roomlistArray[curr] = it;listSize++; // Increment list size}/** Append "it" to list */public void append(E it) {assert listSize < maxSize : "List capacity exceeded";listArray[listSize++] = it;}/** Remove and return the current element */public E remove() {if ((curr=listSize)) // No currentelementreturn null;E it = listArray[curr]; // Copy the elementfor(int i=curr; i=0) && (pos=0) && (curr