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