利用java实现一个简单的链表结构

定义:

所谓链表就是指在某节点存储数据的过程中还要有一个属性用来指向下一个链表节点,这样的数据存储方式叫做链表

链表优缺点:

优点:易于存储和删除

缺点:查询起来较麻烦

下面我们用java来实现如下链表结构:

首先定义节点类:

复制代码
package LinkTest;
/**

  • 链表节点类
  • @author admin
  • */
    public class Node {
    private int value;//存储数据
    private Node next;//下一个节点
    /**
    • 定义构造器
    • @param vlaue
    • @param value
      */
      public Node(int value){
      this.value=value;
      }
      public int getValue() {
      return value;
      }
      public void setValue(int value) {
      this.value = value;
      }
      public Node getNext() {
      return next;
      }
      public void setNext(Node next) {
      this.next = next;
      }
      }
      复制代码

然后定义一个链表类:

  • 注意:遍历链表定义了两个方法,一个是普通方法,一个是递归方法,都可以遍历出来

复制代码
package LinkTest;
/**

  • 链表
  • @author admin
  • */
    public class Link {
    private Node current;
    private Node root;
    public void insert(int vlaue){
    Node newNode=new Node(vlaue);
    if(this.current==null){
    this.current=newNode;
    this.root=this.current;
    }else{
    this.current.setNext(newNode);
    this.current=this.current.getNext();
    }
    }
    //普通遍历
    public void getList(){
    this.current=this.root;
    while(this.current!=null){
    System.out.print(this.current.getValue());
    this.current=this.current.getNext();
    if(this.current!=null){
    System.out.print("------->");
    }
    }
    }

    //递归遍历
    public void getList2(){
    DG(this.root);
    }

    //递归方法
    public void DG(Node node){
    System.out.print(node.getValue()+"----->");
    if(node.getNext()!=null){
    DG(node.getNext());
    }else{
    return;
    }
    }
    }
    复制代码

测试类:

复制代码
package LinkTest;
/**

  • 测试类
  • @author admin
  • */
    public class Test {
    public static void main(String[] args){
    Link l=new Link();
    l.insert(1);
    l.insert(4);
    l.insert(5);
    l.insert(6);
    l.insert(9);
    l.insert(8);
    l.getList();
    }
    }
    复制代码
    测试类运行结果:

1------->4------->5------->6------->9------->8

这样我们就用java实现了一个简单的链表结构。 欢迎工作一到五年的Java工程师朋友们加入Java群: 891219277
群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

原文地址:http://blog.51cto.com/14084556/2341107

时间: 2024-10-06 03:01:41

利用java实现一个简单的链表结构的相关文章

利用java实现一个简单的远程监控程序

一般的远程监控软件都是用c或者c++等语言开发的,而使用java如何来实现相同的功能呢. 首先我们先介绍一下一个简单的远程监控程序的实现原理. 功能一,远程屏幕监视 (1) 必须要有监控端与被监控端,而且程序保持启动. (2) 被监控端获取本机的屏幕截屏发图给监控端. (3) 监控端在本地窗口中显示被监控端发送过来的图像. (4) (2)(3)步骤重复执行,这时在监控端即可实时监视到被监控端的桌面操作了. 功能二,远程控制 (1) 必须要有监控端与被监控端,而且程序保持启动. (2) 在监控端监

一个简单的链表结构

仅仅实现了基本的链表操作,如创建.查找.删除.排序等. //头文件 /*there is no head node exist * */ #include <iostream> using namespace std; typedef struct Node{ int value; struct Node* next; }Node,*ListNode; bool isEmpty(ListNode );//judge the list status bool createList(ListNod

利用java servlet实现简单的web请求过滤和跳转

今日有两个微信web项目合并了,但是还有些链接指向废弃的项目,另外不想在服务器上运行两份相同web项目(1.影响性能.2.维护升级容易出错),因此决定写一个简单链接跳转的项目,spring的filter过滤器可以实现,但想想spring干这个有点大材小用,想到java的servlet可以支持通配符,因此用servlet写了一个简单的跳转程序,总共花了不到一小时的时间.废话少说上代码: 1 /** 2 * Servlet implementation class Default 3 */ 4 @W

利用VS2008发布一个简单的webservice

一个开发好的webservice,怎样发布出去,供其他电脑访问呢? 本文将介绍如何发布一个简单的webservice,其中的内容都是在网上查看别人文章,自己仿照着做了一遍,因此,难免会发生错误,如果发现错误,希望各位能够指出,谢谢!! 1.准备工作 1.1一个C#开发好的webservice实例.参考下面例子: http://www.cnblogs.com/LCCRNblog/p/3716406.html 1.2安装好IIS,安装过程: http://www.cnblogs.com/LCCRNb

java创建一个简单的小框架frame

import java.awt.*; import javax.swing.*; public class SimpleFrameTest { public static void main(String[] args) { EventQueue.invokeLater(new Runnable(){ // 开一个线程 public void run() { SimpleFrame frame = new SimpleFrame(); frame.setTitle("记事本"); //

如何利用CEF3创建一个简单的应用程序 (Windows Platform)

1. 说明 这篇文章主要讲述如何利用CEF3来创建一个简单的应用程序,引用的是1535及以上版本中包含的 Cefsimple 项目例子.如果想知道关于CEF3更多的使用方法,可以去访问 GeneralUsage. 2. 开始 首先,根据自身所使用的开发平台,可以去 这里 下载对应的发布版本.针对这个教程,我们需要下载1750或者更新的版本.当前支持的平台有Windows, Linux和Mac OS X.每一个版本都包含了当在特定平台上编译特定版本CEF3时所需要的所有文件和资源.您可以通过包含在

利用java开发一个双击执行的小程序

之前我们利用java写了很多东西,但是好像都没有什么实际意义. 因为有意义桌面小程序怎么都得有个界面,可是界面又不太好搞.或者 了解到这一层的人就少之又少了. 呀,是不是还得开辟一些版面来介绍awt和 swing... 算了 先把这个 双击执行的小程序 贡献出来. 这次 在分享一下源代码[以前还没有上传过源代码,布置怎么个搞法] 要求是: 输入一个 后缀名,然后输入所在目录,然后 点击查找,比如我们可以 输入F:\,然后查找 F盘下面的所有后缀名为比如.pdf 举例: 主要是 看了很多 资源,然

Java写一个简单学生管理系统

其实作为一名Java的程序猿,无论你是初学也好,大神也罢,学生管理系统一直都是一个非常好的例子,初学者主要是用数组.List等等来写出一个简易的学生管理系统,二.牛逼一点的大神则用数据库+swing来做一个有界面的学生管理系统.其实都并不会太难. 今天我就先写一个简单的用List来实现学生管理系统: 首先,管理系统是针对学生对象的,所以我们先把学生对象就写出来: package bean; public class Student { String name; String studentId;

如何利用CEF3创建一个简单的应用程序

说明: 这篇文章主要讲述如何利用CEF3来创建一个简单的应用程序,它参考了1535及以上版本中包含的 Cefsimple 项目例子.如果想知道关于CEF3更多的使用方法,可以去访问 GeneralUsage. 开始: 首先,根据自身所使用的开发平台,可以去这里下载对应的发布版本.针对这个教程,我们需要下载1750或者更新的版本.当前支持的平台有Windows, Linux和Mac OS X.每一个版本都包含了当在特定平台上编译特定版本CEF3时所需要的所有文件和资源.您可以通过包含在里边的 RE