import java.io.*; class Table3 implements Table { // Table class, data stored in unordered linked lists Cell list; public boolean delete(String key) { if(list!=null) if(list.first.equalKey(key)) { list=list.next; return true; } else { Cell ptr; for(ptr=list; ptr.next!=null&&!ptr.next.first.equalKey(key); ptr=ptr.next) {} if(ptr.next!=null) { ptr.next=ptr.next.next; return true; } else return false; } else return false; } public void add(KeyObject obj) { list = new Cell(obj,list); } public KeyObject retrieve(String key) { Cell ptr; for(ptr=list; ptr!=null&&!ptr.first.equalKey(key); ptr=ptr.next) {} if(ptr==null) return null; else return ptr.first; } public void print(PrintStream out) { Cell ptr; for(ptr=list; ptr!=null; ptr=ptr.next) out.println(ptr.first); } private static class Cell { KeyObject first; Cell next; Cell(KeyObject f,Cell n) { first=f; next=n; } } }