基于链表的增删改查

package com.aimuti.test;
public class Test3{
public static void main(String[] args){
NodeManager nm = new NodeManager();
System.out.println("-------add-------");
nm.add(1);
nm.add(2);
nm.add(3);
nm.add(4);
nm.add(5);
nm.print();
System.out.println("-------del-------");
nm.del(2);
nm.print();
System.out.println("-------find-------");
System.out.println(nm.find(1));
System.out.println("-------update-------");
System.out.println(nm.update(3, 6));
nm.print();
System.out.println("-------insert-------");
nm.insert(1, 3);
nm.print();
}
}
class NodeManager{
private Node root; //根节点
private int currentIndex = 0; //节点的当前序号,每次操作都从0开始
//添加
public void add(int data){
//先对root进行判断
if(root == null){
root = new Node(data);
}else{
//进入next,递归对接点进行操作
root.addNode(data);
}
}
//删除节点
public void del(int data){
if (root == null) {
return;
}
if (root.getData() == data) {
root = root.next;
}else {
root.delNode(data);
}
}
//打印所有
public void print(){
if(root != null){
System.out.print(root.getData()+" ");
root.printNode();
}
}
//查找是否存在节点
public boolean find(int data){
if (root == null) {
return false;
}
if (root.getData() == data) {
return true;
}else {
return root.findNode(data);
}

} //更新 public boolean update(int oldData,int newData){ if (root == null) { return false; } if (root.getData() == oldData) { root.setData(newData); return true; }else { return root.updateNode(oldData, newData); } } //在索引之前插入 public void insert(int index,int data){ if (index < 0 ) { return; } currentIndex = 0; if (index == currentIndex) { Node newNode = new Node(data); newNode.next = root; root = newNode; }else { root.insertNode(index, data); } }private class Node{ private int data; private Node next; //把当前类型作为属性 public Node(int data){ this.data = https://www.it610.com/article/data; } public void setData(int data){ this.data = data; } public int getData(){ return data; } //添加节点 public void addNode(int data){ if(this.next == null){ this.next = new Node(data); }else{ this.next.addNode(data); } } //删除节点 public void delNode(int data){ if (this.next != null) { if (this.next.data == data) { this.next = this.next.next; }else { this.next.delNode(data); } } } //输出所有节点 public void printNode(){ if(this.next != null){ System.out.print(this.next.data+" "); this.next.printNode(); System.out.println(); } } //查找节点 public boolean findNode(int data){ if (this.next != null) { if (this.next.data =https://www.it610.com/article/= data) { return true; }else { return this.next.findNode(data); } } return false; } //修改节点 public boolean updateNode(int oldData,int newData){ if (this.next != null) { if (this.next.data == oldData) { this.next.data = newData; return true; }else { return this.next.updateNode(oldData, newData); } } return false; } //插入节点 public void insertNode(int index,int data){ currentIndex++; if (index == currentIndex) { Node newNode = new Node(data); newNode.next = this.next; this.next = newNode; }else { this.next.insertNode(index, data); } } }

【基于链表的增删改查】}
输出结果基于链表的增删改查
文章图片

    推荐阅读