最近在学习数据结构的java表示方法(本来C描述的就学不好,但觉得到时做毕业论文可能有用,所以就再学) 这是一个link-list的例子,半图形界面,但还没有调试成功。 Main.java是运行主类,ListTest.java是图形界面,List.java是链表主代码
  Main.java import javax.swing.*; import java.awt.*; import java.awt.event.*; 
public class Main {   public static void main(String [] args)   {     ListTest listTest = new ListTest();     listTest.init ();     listTest.setSize (400,400);     listTest.setVisible (true);    }  }
  ListTest.java import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.lang.*; 
public class ListTest extends JFrame  {   private JButton addAtF,addAtB,delFrF,delFrB,print;   private JTextField input;   private JLabel display;   private JPanel p1,p2,p3,p4;   private Container container;   private List myList;   Listener listener;      public void init()   {    Listener listener = new Listener();    List myList = new List();    JTextField input = new JTextField(35);    JLabel display = new JLabel("Result:   ");    JButton addAtF = new JButton("addAtF");    JButton addAtB = new JButton("addAtB");    JButton delFrF = new JButton("delFrF");    JButton delFrB = new JButton("delFrB");    JButton print = new JButton("print");    JPanel p1 = new JPanel();    JPanel p2 = new JPanel();    JPanel p3 = new JPanel();    JPanel p4 = new JPanel();           container = getContentPane();    p1.add (input);    p2.add (display);    p3.add (addAtF);    p3.add (addAtB);    p3.add (delFrF);    p3.add (delFrB);    p3.add (print);    p4.add (p1);    p4.add (p2);    p4.add (p3);    container.add (p4);        addAtF.addActionListener(listener);    addAtB.addActionListener(listener);    delFrF.addActionListener(listener);    delFrB.addActionListener(listener);    print.addActionListener(listener);           }      class Listener implements ActionListener   {    public void actionPerformed( ActionEvent e)    {       double ran = 100 * Math.random();       int ranInt = (int)ran;       Integer objInt = new Integer(ranInt);                   String cmd = e.getActionCommand();       if (cmd.equals("addAtF"))       {         System.out.println("the random number "+ ranInt +" add at front");         myList.insertAtBack( objInt );        }              else if (cmd.equals("addAtB"))       {         System.out.println("add at back");        }              else if (cmd.equals("delFrF"))       {         System.out.println("delete from front");        }              else if (cmd.equals("delFrB"))       {         System.out.println("delete from back");        }              else if (cmd.equals("print"))       {         myList.print();        }     }   }        }
  List.java import java.*; 
public class List {   private ListNode firstNode;   private ListNode lastNode;   private String name;      public List( String s)   {     name = s;     firstNode = lastNode = null;    }      public List()   { this("list");}      public void insertAtFront( Object insertItem)   {     if(isEmpty())        firstNode = lastNode = new ListNode( insertItem);     else        firstNode = new ListNode( insertItem, firstNode);    }      public void insertAtBack( Object insertItem)   {    if( isEmpty())        firstNode = lastNode = new ListNode( insertItem);    else         lastNode = lastNode.next = new ListNode( insertItem);   }      public Object delFromFront() throws EmptyListException   {    Object removeItem = null;    if (isEmpty())        throw new EmptyListException(name);    removeItem = firstNode.data;    if( firstNode.equals (lastNode))        firstNode = lastNode = null;    else        firstNode = firstNode.next;        return removeItem;      }      public Object delFromBack() throws EmptyListException   {    Object removeItem = null;    if ( isEmpty())         throw new EmptyListException(name);             removeItem = lastNode.data;    if(firstNode.equals (lastNode))       firstNode = lastNode = null;    else      {              ListNode movePoObject = firstNode;        while( movePoObject.next != lastNode)        movePoObject = movePoObject.next;               lastNode = movePoObject;        movePoObject.next = null;       }     return removeItem;   }      public boolean isEmpty()   {     return (firstNode == null);    }      public void print()   {     if (isEmpty())     {       System.out.println ("Empty" + name);       return;      }           System.out.print ("The" + name + "is: ");          ListNode current = firstNode;     while( current != null)     {       System.out.print(current.data);       current = current.next;             }          System.out.println ();     System.out.println ();   }   
 class ListNode {   Object data;   ListNode next;      ListNode( Object o)   {     data = o;     next = null;    }       ListNode( Object o, ListNode nextNode)   {     data = o;     next = nextNode;    }      Object getNode()   {     return data;    }      ListNode getnext()   {     return next;    } } 
class EmptyListException extends RuntimeException {   public EmptyListException (String name)    {     super("The" + name +"is empty");    } } 
}
   
 
  |