data-structures/java/SList/List.java
2022-09-12 18:47:38 +05:30

49 lines
1.7 KiB
Java

/** List ADT */
public interface List<T> {
/** Remove all contents from the list, so it is once again empty. Client is responsible for reaclaiming storage used by the list elements. */
public void clear();
/** Insert an element at the current location. The client must ensure that the list's capacity is not exceeded.
@param item The element to be inserted. */
public void insert(T item);
/** Append an element at the end of the list. The client must ensure that the list's capacity is not exceeded.
@param item The element to be appended. */
public void append(T item);
/** Remove and return the current element.
@return The element that was removed. */
public T remove();
/** Set the current position to the start of the list */
public void moveToStart();
/** Set the current position to the end of the list */
public void moveToEnd();
/** Move the current position one step left. No change if already at beginning. */
public void prev();
/** Move the current position one step right. No change if already at end. */
public void next();
/** @return The number of elements in the list. */
public int length();
/** @return The position of the current element. */
public int currPos();
/** Set current position.
@param pos The position to make current. */
public void moveToPos(int pos);
/** @return The current element. */
public T getValue();
/** @return True if k is in the list L, false otherwise */
public static boolean find(List<Integer> L, int k) {
for (L.moveToStart(); L.currPos() < L.length(); L.next()) {
if (k == L.getValue()) return true; // Found k
}
return false; // k not found
}
}