最近在学习数据结构的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");
}
}
}
闽公网安备 35060202000074号