【说明】

封装节点类,既用于存储数据data和下一个节点的首地址next,又封装了基本的增删改查的功能。
方便以后调用,而不用要用户手工去处理各个节点的关系。
//class Link{ private Node root;//the head node 

  public void addNode(String data){     Node newNode = new Node(data);       if(this.root == null){          this.root = newNode;     }else{            this.root.add(newNode);//method add() is defined in class Node.       } } public void printNode(){      if(this.root != null){           this.root.print();        } } public boolean contains(String name){     return this.root.search(name);    } public void deleteNode(String data){      if(this.contains(data)){          if(this.root.data.equals(data)){              this.root = this.root.next;          }else{                this.root.next.delete(root, data);            }     } } //inner class Node,将节点进行封装,方便以后的调用,而不用由用户手工去处理各个节点的关系。   class Node{       private String data;      private Node next;        public Node(String data){         this.data = data;        }     public void add(Node newNode){//add node but no data          if(this.next == null){              this.next = newNode;         }else{                this.next.add(newNode);//迭代的方法            }     }     public void print(){//迭代输出            System.out.println(this.data);            if(this.next != null){               this.next.print();            }     }     public boolean search(String data){           if(data.equals(this.data)){               return true;          }else{                if(this.next != null){                   return this.next.search(data);                }else{                        return false;             }         }     }     public void delete(Node previous, String data){//可以把previous理解为头指针            if(data.equals(this.data)){               previous.next = this.next;           }else{                if(this.next != null){                   this.next.delete(this, data);             }         }     } }

}public class Test12_1 {  public static void main(String args[]){       Link l = new Link();     l.addNode("A");     l.addNode("B");     l.addNode("C");     System.out.println("=====================before delete================");      l.printNode();        l.deleteNode("B");      System.out.println("==================deleted==================");      l.printNode();        System.out.println();     System.out.println("searse node: "+l.contains("A")); }}

用Java实现单向链表相关推荐

  1. java实现单向链表

    一.单向链表的结构. (1).首先节点的结构,其中包含本节点内容,以及需要指向下一个节点. Java代码 private static class Entry<E>{ E e; Entry ...

  2. Java实现单向链表基本功能

    一.前言 最近在回顾数据结构与算法,有部分的算法题用到了栈的思想,说起栈又不得不说链表了.数组和链表都是线性存储结构的基础,栈和队列都是线性存储结构的应用- 本文主要讲解单链表的基础知识点,做一个简单 ...

  3. Java实现单向链表——精简

    文章目录 引言 实现思路 添加元素 插入元素 删除元素 查找元素 更新元素 显示链表 实现代码(完整) 总结 留言 引言 链表是一种重要的数据结构.它的存储空间是不连续的,单向链表是最简单的一种链表. ...

  4. java集合单向链表_Java实现单向链表数据结构

    本文章同步到本人的博客站点 燕归来 链表是一种数据结构,和数组同级.比如,Java中我们使用的ArrayList,其实现原理是数组.而LinkedList的实现原理就是链表了.链表在进行循环遍历时效率 ...

  5. java实现单向链表的增、删、改、查

    单向链表 作者:vashon package com.ywx.link; /*** 单向链表* @author vashon**/ public class LinkTest {public stat ...

  6. java简单单向链表_用java简单的实现单链表的基本操作

    packagecom.tyxh.link;//节点类 public classNode {protected Node next; //指针域 protected int data;//数据域 pub ...

  7. java简单单向链表_【新手自白书】简单单项链表的实现(JAVA)

    复习一下简单单项链表的实现. 在动手写链表之前,需要思考链表是如何组成的,一般来说,一个简单的单项链表主要是由节点构成,由于链表的特性,头节点是一个十分重要的成员,所以,链表必须的成员是节点Node, ...

  8. 【java】Java实现单向链表反转

    1.概述 转载:https://www.jb51.net/article/136185.htm 遇到了这个问题,记录一下 2.案例1 2.1 实现思路 递归:从尾部开始处理 非递归:从头部开始处理 2 ...

  9. 反转单向链表java_Java实现单向链表反转

    本文实例为大家分享了Java实现单向链表反转的具体代码,供大家参考,具体内容如下 1.实现代码 public class LinkedListTest { public static void mai ...

最新文章

  1. python插入排序演示源码
  2. 放射科医生选择AI供应商的10大标准
  3. Serverless在游戏、电商行业的一个运用场景示例
  4. 开源 java CMS - FreeCMS2.3员
  5. 新书《深入理解Kafka:核心设计与实践原理》上架,感谢支持~
  6. JS动态添加span等标签
  7. 如何打开pr_debug调试信息
  8. Spring Cloud 中的@FeignClient注解中的contextId属性
  9. UVA 993 Product of digits
  10. 需要掌握的flex知识点
  11. 物联网培训总结(C#)
  12. 如何恢复Windows自动更新?
  13. Java动态读取map里面的key值
  14. SCI英文论文写作- Latex 进阶
  15. IMAX China去年实现扭亏为盈;华为助力打造成都智算中心;Quantinuum和IBM壮大量子生态系统 | 全球TMT...
  16. java电影院购票系统概况_电影院售票管理系统
  17. 卸载wps后,安装完office 2010 图标异常,类型未识别问题
  18. 后端返回JSON数组转Tree树形格式,展示到element-ui的tree树形组件
  19. Tekton Pipeline 教程
  20. maven 配置多个仓库

热门文章

  1. 三容水箱液位控制系统_三容水箱液位控制系统的建模及仿真.doc
  2. glnxa64 matlab 什么版本_Matlab R2018a无法重新加载 /usr/local/MATLAB/R2018a/bin/glnxa64/libmwxcp_dwarf.so...
  3. java 并发任务_java 并发 - 运行多个任务并执行第一个结果
  4. linux下详解shell中/dev/null 21
  5. 《深入理解ElasticSearch》——2.4 批量操作
  6. squidguard实现
  7. linux下的包和RPM管理
  8. WinDbg+SOS:Web服务器High CPU Hang(100%)实例分析
  9. css animation动画完成后隐藏_如何使用CSS实现旋转地球动画效果
  10. python监听文件更改记录_如何用机器人监听老板微信?