链表
- 一种常见的基础数据结构,是一种线性表,但是并不会按线性表的顺序来存储结构,而是在每一个节点里存到是下一个节点的指针(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();
}
}
}
}