`
scliu0718
  • 浏览: 51597 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

一个简单的Java单链表

阅读更多

一直对链表不太熟悉, 今天看了下并写了下来, 错的地方请指正.(注意:有的地方判断不够严格).


package com.test;



public class Link {

Node root;

private class Node{
String name ;
Node next;


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


public void add(Node node) {
if(this.next == null){
this.next = node;
}else{
this.next.add(node);
}
}


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


public boolean query(String name) {
if(this.next == null){
return false;
}else if(this.next.name.equals(name)){
return true;
}else{
return this.next.query(name);
}
}

public void delete(Node preNode , String name) {
if(this.name.equals(name)){
preNode.next = this.next;
}else{
this.next.delete(this , name);
}
}
}

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

public boolean queryNode(String name){
if(this.root == null){
return false;
}else if(this.root.name.equals(name)){
return true;
}else{
return this.root.query(name);
}
}

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

public static void main(String[] args) {
Link link = new Link();
link.addNode("根");
link.addNode("1");
link.addNode("2");
link.addNode("3");
link.addNode("4");
link.print();
System.out.println("");
System.out.println(link.queryNode("1"));
System.out.println("");
link.deleteNode("2");
link.print();
}

void print(){
if(this.root != null){
this.root.print();
}
}


}
分享到:
评论

相关推荐

    基于JAVA的单链表简单实现

    基于JAVA创建单链表,并实现了在队列末尾增加、删除元素,在队列中插入、删除元素,打印链表。

    用JAVA写一个倒置单链表的源代码

    用JAVA写一个倒置单链表的源代码,适用于初学者,简单易懂

    单链表的一个简单练习

    将若干城市的信息存入一个带头结点的单链表, 结点中的城市信息包括城市名、城市的位置坐标 要求: (1)给定一个城市名,返回其位置坐标; (2)给定一个位置坐标P和一个距离D,返回所有 与P的距离小于等于D的城市。

    简易单链表实现,附带LruCache算法的增删改查

    简易单链表增删改查功能实现。新增内容:新增单链表LruCache算法增删改查,对学习LruCache 算法有一定帮助。

    单链表反转 链表相交

    实现了一个简单的java版本的单链表,链表反转和链表是否相交如果相交求相交节点。关于链表是否相交是一次阿里的面试的在线试题,挂的很彻底。然后就在网上找了几个实现思路自己用java做了一个简单的实现....

    JAVA单链表的简单操作(递增单链表插入数据,链表逆置,链表逆序合成)

    JAVA写一个单链表 1、已知带头结点的动态单链表 L 中的结点是按整数值递增排序的,试写一 算法将值为 x 的结点插入到表 L 中,使 L 仍然有序。要求算法的时间复杂度为 O(n),空间复杂度为 O(1)。 2、设计一算法,...

    线性表,单链表,栈 java实现

    线性表,单链表,栈的代码实现,java简单实现,内附有代码少许注释

    一元多项式相加 java实现

    这是我们学校的一个课程设计题,我是用链表实现的,并且测试类也写得较简单。如果有什么不对的地方,请多指教。

    java 编写 单链表

    使用java 编写的单链表 可以完成类型检测 定点插入删除 遍历等操作 该代码较为简单 给初学者作指导

    数据结构单链表插入、删除和修改实验报告

    1. 编制一个演示单链表插入、删除、查找等操作的程序。 三、实验步骤 1.需求分析 本演示程序用JAVA编写,完成单链表的生成,任意位置的插入、删除,以及确定某一元素在单链表中的位置。 ① 输入的形式和输入值的...

    java的简单数据结构

    java数据结构简单介绍,一点点

    linkedList:java单链表的实现和简单操作

    linkedListjava单链表的实现和简单操作注意isCircle()这个函数是判断单链表是否成环的函数,由于是单链表所以头尾指针只有一个,所以出现环只能是大圈,最后一个和头结点成环,不可能出现中间“打结”的情况,我们...

    Java单链表源码分析-clojure-conj-2011-notes:来自clojureconj2011的注释

    Java单链表源码分析菲利普·波特的 clojure conj 2011 笔记 第一天 斯图尔特·塞拉 (Stuart sierra) 的初步演讲 谁:处于松散状态的人,希望看到潜力的人 为什么: @IORayne 关于 clojail 的演讲 what:用于评估 ...

    Leetcode 刷题(8)简单单链表: 删除链表倒数第N个元素

    # 对于这种题目,循环结束条件设为快指针到达最后一个元素即可,然后倒数第几个元素,就让慢指针慢几步就好。 class Solution: def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode: # 增加头部,是...

    链表操作 java

    本程序的目的是模拟实现一个简单的单链表操作的类,可以向其中添加若干字母(A-Z)作为其节点元素。 要求:使用字符用户界面。程序功能: 1. 可以随机选取若干个字母,添加到自制的单链表中。字母取值范围是[A,Z] 2. ...

    java实现的简单电话本通讯录程序

    这是我们在学习JavaSE的时候,老师布置的作业,即简单实现一个能插入、更新、删除、查询、打印显示的小程序,真的很小很粗糙,但是体现了Java面向对象的编程特点,并再现了相关的知识点,对初学者可能有一定借鉴……

    Java数据结构和算法中文第二版

    插入一个节点 遍历树 查找最大值和最小值 删除节点 二叉树的效率 用数组表示树 重复关键字 完整的tree.java程序 哈夫曼(Huffman)编码 小结 问题 实验 编程作业 第9章 红-黑树 第10章 2-3-4树和外部存储...

    算法各大公司的笔试题目算法部分之单链表的各种逆置排序.txt

    单链表是数据结构中最简单的一种数据结构,虽然在结构上最简单,但是使用好也是比较困难的,而在各大公司的面试中也是有单链表的各种算法的变种。下面我就列举出几种经常出现的几种题目,并通过简单分析,使用java...

    Java数据结构和算法中文第二版(1)

    插入一个新节点 删除 红-黑树的效率 红-黑树的实现 其他平衡树 小结 问题 实验 第10章 2-3-4树和外部存储 2-3-4树的介绍 Tree234专题applet 2-3-4树的Java代码 2-3-4树和红-黑树 2-3-4树的效率 2-3...

    java数据结构与算法第二版

    插入一个节点 遍历树 查找最大值和最小值 删除节点 二叉树的效率 用数组表示树 重复关键字 完整的tree.java程序 哈夫曼(Huffman)编码 小结 问题 实验 编程作业 第9章 红-黑树 第10章 2-3-4树和外部存储...

Global site tag (gtag.js) - Google Analytics