网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  link-list java版     
  文章作者:未知  文章来源:水木森林  
  查看:60次  录入:管理员--2007-11-17  
 

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

}

 
 
上一篇: jview开发前端好产品    下一篇: j2ee项目10大风险
  相关文档
创建本机、跨平台 gui 应用程序 11-17
动态proxy与java acl用户访问控制机制实现 11-17
学会tiles在jsf框架中的应用指南 11-17
org.eclipse.cdt-3.0.0-win32.x86 11-17
j2me学习札记3 11-17
技术分享 在spring中实现事务挂起(图) 11-17
名字的隐藏 11-17
java入门——java修饰词总结 11-17
break 语句 11-16
java中的易混问题收集 11-17
swing的历史 11-17
利用线程池技术来实现端口扫描 11-16
java教程电子文档下载 11-17
使用spring mvc框架进行文件上传 11-17
基于binary heap的a*算法 11-17
java 命名约定有哪些? 11-16
apache的完全安装转载 11-17
通过e-mail 共享java 对象 11-17
用javascirpt在中插入元素(光标位置),大家看看! 11-17
java learn steps 11-17
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息