link-list java版

王朝java/jsp·作者佚名  2006-01-09
宽屏版  字体: |||超大  

最近在学习数据结构的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");

}

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有