package lianbiao; public class NodeManger { private Node root; private int currentIndex = 0; //添加 public void add(int data) { if (root == null) { root = new Node(data); } else { root.addNode(data); } } //删除 public void del(int data) { if (root.getData() == data) { root = root.next; } else { root.delNode(data); } } //打印 public void print() { if (root != null) { System.out.print(root.getData() + "->"); root.printNode(); } System.out.println(); } //修改 public boolean update(int olddata, int newdata) { if (root != null) { if (root.getData() == olddata) { root.setData(newdata); return true; } else { return root.updateNode(olddata, newdata); } } else { return false; } } //插入 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); } } //查找 public boolean find(int data) { if (root == null) { return false; } else { if (root.data == data) { return true; } else { return root.findNode(data); } } } private class Node { private int data; private Node next; //添加 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 (root == null) return; 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(); } } //修改 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); } } else { 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); } } //查找 public boolean findNode(int data) { if (this.next != null) { if (this.next.data == data) { return true; } else { return this.next.findNode(data); } } else { return false; } } public int getData() { return data; } public void setData(int data) { this.data = data; } public Node(int data) { this.data = data; } } }