链表数据结构

链表

  • 一种常见的基础数据结构,是一种线性表,但是并不会按线性表的顺序来存储结构,而是在每一个节点里存到是下一个节点的指针(Pointer)
        package com;
    
        public class NodeManager {
    
        private Node root; //根节点
        
        //添加节点
        public void addNode(String name){
            //如果根节点是空的,那么久新创建
            if (root == null) {
                root = new Node(name);
            } else {
                //否则直接调用添加的方法
                root.add(name);;
            }
        }
        //删除节点
        public void delNode(String name){
            //如果根节点的名字和要删除的是一样的
            if (root.getName().equals(name)) {
                //那么就删除根节点,这个时候根节点的next为根节点
                root = root.next;
            } else{
                //要么就删除方法
                root.delete(name);
            }
        }
        //打印链表
        public void printNode(){
            if (root != null) {
                System.out.print(root.getName() + "-->");
                root.print();
                System.out.println();
            }
        }
        
        //每个节点对象
        class Node{
            private String name;
            private Node next ;//表示当前节点的下一节点
            
            public String getName(){
                return name;
            }
            
            public Node(String name){
                this.name = name;
            }
            
            //添加节点
            public void add(String name){
                //如果this.next == null,那么就直接创建一个新的节点
                if (this.next == null) {
                    this.next = new Node(name);
                } else {
                    //否则的话直接添加
                    this.next.add(name);
                }
            }
            
            //删除节点
            public void delete(String name){
                if (this.next != null) {
                    if (this.next.name.equals(name)) {
                        this.next = this.next.next;
                    } else{
                        this.next.delete(name);
                    }
                }
            }
            
            //输出节点
            public void print(){
                //当前对象如果不为空,那么久输出
                if (this.next != null) {
                    System.out.print(this.next.getName() + "--->");
                    this.next.print();
                }
            }
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,353评论 0 33
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,116评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,771评论 19 139
  • 一、基本数据类型 注释 单行注释:// 区域注释:/* */ 文档注释:/** */ 数值 对于byte类型而言...
    龙猫小爷阅读 9,724评论 0 16
  • 文/一粒少女 -01- 在这个世间,有一些无法抵达的地方。无法靠近的人。无法完成的事情。无法占有的感情。无法修复的...
    一粒少女阅读 6,335评论 50 68