JAVA基础学习之路(十二)链表

定义链表的基本结构:

class Link {//外部类
    //内部类,只为链表类服务
    private class Node {//定义节点类
        private String data;//保存的数据
        private Node next;//引用关系
        public Node (String data) {
            this.data = data;
        }
    private Node root;//定义根节点
    }

}

1.数据增加 public void add(数据类型,变量)

如果要向链表之中增加数据,应该由Link类负责节点对象的产生,并由Link类维护根节点

所有关系匹配交给Node类处理

class Link {//外部类
    private Node root;//定义根节点
    //内部类,只为链表类服务
    private class Node {//定义节点类
        private String data;//保存的数据
        private Node next;//引用关系

        public Node (String data) {
            this.data = data;
        }

        public void addNode(Node newNode) {
            if (this.next == null) {//下一个位空,直接接后面
                this.next = newNode;
            } else {//下一个不为空,后移一位再判断
                this.next.addNode(newNode);
            }
        }
    }
    public void add(String data) {
        if (data ==null)  {
            return;
        };
        Node newNode = new Node(data);
        if (this.root == null) {
            this.root = newNode;
        } else {
            this.root.addNode(newNode);
        }
    }
}

public class test1 {
    public static void main(String args[]) {
            Link link = new Link();
            link.add("hello");
            link.add("world");
            link.add(null);

    }
}

2.取得保存的node个数public int size()

1.在link类中增加count属性
2.在add方法中增加 this.count ++ ,表示每次增加node则count加一
3.增加public int size ()方法,返回count的值

3.判断是否是空链表 public boolean isEmpty()

两种方法:1.判断root是否为空

     2.判断数据量(count)

public boolean isEmpty() {
    return this.count == 0;
}

4.数据查询 public boolean contains(数据类型,变量)

判断某个数据是否存在

原文地址:https://www.cnblogs.com/xhnxhnu/p/9149518.html

时间: 2024-10-02 10:34:37

JAVA基础学习之路(十二)链表的相关文章

java痛苦学习之路[十二]JSON+ajax+Servlet JSON数据转换和传递

1.首先客户端需要引入 jquery-1.11.1.js 2.其次javaweb工程里面需要引入jar包  [commons-beanutils-1.8.0.jar.commons-collections-3.1.jar.commons-lang-2.4.jar.commons-logging-1.1.3.jar.ezmorph-1.0.6.jar.json-lib-2.3-jdk15.jar] 3.客户端js端代码 4.servlet 服务器,映射的路径CardColl 以上就是整个过程,如果

Java基础-学习笔记(十二)——抽象类和接口

1.抽象类的定义 java中可以定义一些不含任何语句的方法,它的方法体的实现方式可以交由子类来实现,这种方法叫抽象方法,只要类中有一个抽象方法,这个类就称为抽象类.含有抽象方法的类为抽象类,抽象类中所有的方法不一定全是抽象方法. 2.抽象类的规则 1)抽象类和抽象方法都需要用abstract关键字修饰 2)抽象类不能进行实例化,也就是不能用new创建抽象类的对象 3)抽象方法只需要声明,不用写语句 4)继承抽象类的子类只有在将从父类继承过来的所有抽象方法全部覆盖,该子类才能进行实例化,不然该子类

java基础学习总结——GUI编程(二)

永不放弃,一切皆有可能!!! 只为成功找方法,不为失败找借口! java基础学习总结——GUI编程(二) 一.事件监听 测试代码一: 1 package cn.javastudy.summary; 2 3 import java.awt.*; 4 import java.awt.event.*; 5 6 public class TestActionEvent { 7 public static void main(String args[]) { 8 Frame f = new Frame("

salesforce 零基础学习(五十二)Trigger使用篇(二)

第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰. 十七篇链接:salesforce 零基础学习(十七)Trigger用法 有的时候对于sObject的trigger处理复杂的情况下,比如一个sObject的before update要实现功能1,2.....n功能情况下,Handler中需要在before update写实现功能1--n的代码.然而

salesforce零基础学习(八十二)审批邮件获取最终审批人和审批意见

项目中,审批操作无处不在.配置审批流时,我们有时候会用到queue,related user设置当前步骤的审批人,审批人可以一个或者多个.当审批人有多个时,邮件中获取当前记录的审批人和审批意见就不能随便的取一个审批人了,有以下方式针对不同的场景可以获取到当前记录的最终审批人以及审批意见. 邮件内容使用以下几种方式实现: 1.代码里面实现邮件发送 2.email template(text/html/custom) 3.visualforce emailTemplate 对发送邮件方式不清楚的,可

JAVA基础学习之路(一)

JAVA基础概念: PATHl: path属于操作系统的属性,是系统用来搜寻可执行文件的路径,个人理解是类似于linux中的全局变量 CALSSPATH:java程序解释类文件时加载文件的路径 注释: 单行注释  // 多行注释 /*.......*/ 文档注释 /**......*/ JAVA两类数据类型: 1基本类型 数值类型: 整形:short ,int,long 浮点型:float,double 字符类型:char 布尔类型:boolean 2引用类型 数组,类,接口 数据类型转换基本原

JAVA基础学习之路(十)this关键字

class Book { String name; int price; int num;//构造方法之间的互相调用解决了代码的重复问题,但是一定要留出口 public Book() { this("请输入书名",0,0); } public Book(String name) { this(name,9999,9999);//this调用方法 } public Book(String name,int num) { this(name,num,9999); } public Book

java基础学习总结——GUI编程(二) 未学习

一.事件监听 测试代码一: 1 package cn.javastudy.summary; 2 3 import java.awt.*; 4 import java.awt.event.*; 5 6 public class TestActionEvent { 7 public static void main(String args[]) { 8 Frame f = new Frame("TestActionEvent"); 9 Button btn = new Button(&qu

Java基础笔试练习(十二)

1.(C#.JAVA)扩展方法能访问被扩展对象的public成员 A.能 B.不能 答案: A 解析: 翻译一下,子类方法是否能够访问父类中的public成员. 2.如果子类要调用父类的构造函数,则通过super()调用来实现. A.正确 B.错误 答案: A 解析: super关键字在子类内部使用,代表父类对象. 访问父类的属性 super.属性名 访问父类的方法 super.方法名() 子类构造方法需要调用父类的构造方法时,在子类的构造方法体里最前面的位置:super() 3.下列关于Jav