`
scliu0718
  • 浏览: 52217 次
  • 性别: 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单链表练习”为主题,通过博主baby69yy2000在iteye上的博客分享,深入探讨了Java中实现单链表的相关知识。 首先,我们要理解单链表的概念。单链表是一种线性数据结构,由一系列节点(也称为元素或...

    java 单链表和双向链表的实现

    单链表是一种线性数据结构,其中每个节点包含数据和一个指向下一个节点的引用。而双向链表则更进一步,每个节点不仅有指向下一个节点的指针,还有一个指向前一个节点的指针。这种额外的指针使得双向链表在某些操作上...

    基于JAVA的单链表简单实现

    这需要一个辅助指针来跟踪前一个节点,以便删除最后一个节点后更新其next引用。 ```java public void deleteFromEnd() { if (head == null) { System.out.println("链表为空,无法删除"); return; } if (head....

    Java实现单链表以及单链表的操作.zip

    在Java中,我们可以创建一个名为`Node`的类来表示链表的节点,其中包含一个`data`字段存储数据和一个`next`字段指向下一个节点。例如: ```java public class Node { int data; Node next; public Node(int ...

    一个自己用java写的学生单链表的相关问题

    以下是一个简单的`Node`类的示例: ```java public class Node { private String data; // 假设学生信息是字符串类型 private Node next; public Node(String data) { this.data = data; this.next = null; ...

    java实现单链表

    在Java中,我们可以用一个简单的空节点(也称为头节点)来初始化链表。初始时,链表为空,所以头节点的`next`指针应为`null`。 ```java public class LinkedList { private Node head; public LinkedList() { ...

    java单链表—修订版

    这个“java单链表—修订版”主题涵盖了一些基本的链表操作,包括创建链表、删除最后一个元素、删除指定元素、清空链表以及判断链表是否为空。以下是对这些操作的详细解释: 1. **建立单链表**:创建链表通常从头...

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

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

    Java的循环单链表及其测试程序

    本篇文章将深入探讨Java中的循环单链表实现,并提供一个简单的测试程序。 首先,我们需要定义一个链表节点类(Node)。每个节点包含一个数据元素和一个指向下一个节点的引用。在循环单链表中,最后一个节点的next引用...

    数据结构单链表的详细设计分析(Java 版本的)

    以下是一个简单的`LinkedList`类的实现: ```java public class LinkedList { private Node head; public LinkedList() { this.head = null; } // 添加节点到链表末尾 public void add(int data) { if ...

    单链表的一个简单练习

    ### 单链表的一个简单练习 #### 背景与目的 本练习旨在通过实际操作加深对单链表的理解,并掌握如何在单链表中进行数据的存储与查询。题目要求实现的功能包括: 1. 给定一个城市名,能够返回该城市的位置坐标。 2. ...

    Java自己实现一个单链表

    本文将深入探讨如何使用Java语言自己实现一个单链表,包括其核心概念、基本操作以及相关的代码实现。 首先,我们要了解单链表的基本概念。单链表是由一系列节点构成的,每个节点包含两个部分:数据域,存储实际的...

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

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

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

    线性表中的元素具有顺序关系,即每个元素都有一个前驱和后继,除了第一个元素没有前驱,最后一个元素没有后继。线性表的操作通常包括插入、删除、查找等。 在Java中,线性表可以使用数组或链表来实现。数组实现简单...

    LinkList单文件_一个简单单链表_

    本文将深入探讨单链表的概念、特点、基本操作以及如何在实际编程中实现一个简单的单链表。 单链表由一系列节点组成,每个节点包含两部分:数据域(用于存储数据)和指针域(用于存储下一个节点的地址)。在单链表中...

    Java单链表基本操作的实现

    下面是一个简单的`Node`类定义: ```java public class Node { protected Node next; protected int data; public Node(int data) { this.data = data; } public void display() { System.out.print(data ...

    单链表反转 链表相交

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

    基于Java实现的单链表基本操作之链表排.zip

    以下是一个简单的单链表节点类和链表类的实现: ```java public class ListNode { int val; // 节点值 ListNode next; // 指向下一个节点的引用 ListNode(int x) { val = x; } // 构造函数 } public class ...

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

    以下是一个简单的实现: ```java public void insertOrdered(int x) { if (header == null) { // 空表,直接在尾部插入 add(x); } else { int i; for (i = 0; i ; i++) { if (i == 0 || header.data ) { //...

Global site tag (gtag.js) - Google Analytics