import java.util.ArrayList; import javax.swing.JOptionPane; /** * * @author Bill Kraynek */ public class Example6 { static ArrayList memory = new ArrayList(); static Node start; /** * @param args the command line arguments */ public static void main(String[] args) { start = new Node("", 0); memory.add(new Node("This", 1)); memory.add(new Node("is", 2)); memory.add(new Node("example", 3)); memory.add(new Node("sentence", -1)); display(start.next); memory.set(1, new Node(memory.get(1).data, memory.size())); memory.add(new Node("an", 2)); display(start.next); String[] inserts = {"example", "sentee", "This"}; for (String string : inserts) { Node p = start; while (p.next != -1 && !memory.get(p.next).data.equals(string)) { p = memory.get(p.next); }// end while Node node = new Node("insert", p.next); memory.add(node); p.next = memory.size() - 1; display(start.next); }// end for }// end main static void display(int list) { int p = list; String out = ""; while (p != -1) { out += memory.get(p).data + " "; p = memory.get(p).next; }// end while out = out.substring(0, out.length() - 1) + ".\n"; out += "Start = " + start + "\nMemory:\n"; int index = 0; for (Node node : memory) { out += index + ": " + node + "\n"; index++; }// end for JOptionPane.showMessageDialog(null, out); }// end display static class Node { String data; int next; Node(String data, int next) { this.data = data; this.next = next; }// end constructor public String toString() { return "(" + data + " , " + next + ")"; }// end toString }// end Node }