Java学习之链表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java学习之链表相关的知识,希望对你有一定的参考价值。

数据结构学了,java实现下

package com.gh.Link;
/**
 * 链表的实现
 * @author ganhang
 *
 */
public class Links {
    public static void main(String[] args) {
        NodeManage nm=new NodeManage();
        nm.add("节点1");
        nm.add("节点2");
        nm.add("节点3");
        nm.add("节点4");
        nm.add("节点5");
        nm.add("节点6");
        nm.add("节点7");
        nm.add("节点8");
        nm.add("节点9");
        nm.add("节点10");
        nm.print();
        nm.delete("节点3");
        nm.print();
        }
}
package com.gh.Link;
/**
 * 链表管理(增删查)
 * @author ganhang
 *
 */
public class NodeManage {
    private Node root;

    public void add(String name) {
        if (root == null) {
            root = new Node(name);
        } else {
            root.addNode(name);
        }
    }

    public void delete(String name) {
        if (root != null) {
            if (root.name.equals(name)) {
                root = root.next;
            } else {
                root.delNode(name);
            }
        }
    }

    public void print() {
        if(root!=null){
            System.out.print(root.name);
            root.printNode();
            System.out.println();
        }
    }

    class Node {//内部类实现根节点下节点的操作
        private String name;
        private Node next;

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

        public void addNode(String name) {
            if (this.next == null) {
                this.next = new Node(name);
            } else {
                this.next.addNode(name);
            }
        }

        public void delNode(String name) {
            if (this.next != null) {
                if (this.next.name.equals(name)) {
                    this.next = this.next.next;
                } else {
                    this.next.delNode(name);
                }
            }
        }
        public void printNode() {
            if(this.next!=null){
                System.out.print("-->"+this.next.name);
                this.next.printNode();
            }
        }
    }
}

 

以上是关于Java学习之链表的主要内容,如果未能解决你的问题,请参考以下文章

Redis学习之列表类型详解

c学习之单向链表的删除与清除操作

java学习之集合家族2

python学习之链表实现有序表

iOS学习之代码块(Block)

Redis学习之数据类型List详解