首页 > 其他 > 详细

链表04-开发可用链表

时间:2019-11-17 14:33:26      阅读:94      评论:0      收藏:0      [点我收藏+]

取得链表中保存的元素个数:public int size()

  既然每一个链表对象都只有一个root根元素,那么每一个链表就有自己的长度,可以直接在Link类里面直接设置一个count属性,随后每一次数据添加完成之后,可以进行个数的自增

  修改Link.java类

    增加一个count属性

private int count = 0; // 保存元素的个数

    在add()方法里面增加数据的统计操作

    public void add(String data){  // 假设不允许有null
        if (data == null){
            return ;
        }
        Node newNode = new Node(data); // 要保存的数据
        if (this.root == null){ // 如果当前没有根节点,则设置为根节点
            this.root = newNode; // 保存根节点
        }else{ // 存在根节点,则到下一节点找保存数据
            this.root.AddNode(newNode);
        }
        this.count ++; // 每一次保存完成后数量加一

    }

 

    为Link类增加一个size()方法,获得数据的长度

    public int size(){ // 取得保存的数据量
        return this.count;
    }

 

完整代码如下

class Link{ // 链表类,外部只能看这一个类
    // 定义在内部,主要为Link类服务    
    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 printNode(){ // 打印Node信息
            System.out.println(this.data);
            if( this.next != null){
                this.next.printNode();
            }
        }

        // ===================以上为内部类============================
    }
    private Node root; // 根结点
    private int count = 0; // 保存元素的个数
    public void add(String data){  // 假设不允许有null
        if (data == null){
            return ;
        }
        Node newNode = new Node(data); // 要保存的数据
        if (this.root == null){ // 如果当前没有根节点,则设置为根节点
            this.root = newNode; // 保存根节点
        }else{ // 存在根节点,则到下一节点找保存数据
            this.root.AddNode(newNode);
        }
        this.count ++; // 每一次保存完成后数量加一

    }
    public int size(){ // 取得保存的数据量
        return this.count;
    }

    public void print(){ // 打印所有Node信息
        this.root.printNode();
    }

}

public class LinkDemo{
    public static void main(String args[]){
        Link all = new Link();
        all.add("Hello");
        all.add("World");
        all.add(null);
        all.print();
        System.out.println(all.size());
    }
}

 

技术分享图片

本程序中,null不会被保存

 

 

链表04-开发可用链表

原文:https://www.cnblogs.com/anyux/p/11876327.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!