public class NodeFunction { public static void main(String[] args) { NodeManger nm = new NodeManger(); } } 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 != null) { 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 find(int data) { if (root != null) { if (root.getData() == data) { return true; } else { return root.findNode(data); } } return false; } public void insert(int index, int data) { if (index<0)return; if (root!=null){ if (currentIndex==index){ Node newNode = new Node(data); newNode.next=root; root=newNode; }else { root.insertNode(index,data); } } } 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); } } return false; } private class Node { private int data; private Node next; public Node(int data) { this.data = data; } public int getData() { return data; } public void setData(int data) { this.data = data; } //添加节点 public void addNode(int data) { if (this.next == null) { this.next = new Node(data); } else { this.next.addNode(data); } } //输出所有节点 public void printNode() { if (this.next != null) { System.out.print(this.next.data + "->"); this.next.printNode(); } } // 查询节点 public boolean findNode(int data) { if (this.next != null) { if (this.next.getData() == data) { return true; } else { return this.next.findNode(data); } } return false; } //删除节点 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 boolean updateNode(int oldData, int newData) { if (this.next != null) { if (this.next.getData() == oldData) { this.next.setData(newData); return true; } else { return this.next.updateNode(oldData, newData); } } return false; } //插入 public void insertNode(int index, int data) { if (this.next != null) { currentIndex++; if (currentIndex==index){ Node newNode = new Node(data); newNode.next=this.next; this.next=newNode; }else { this.next.insertNode(index,data); } } } } }
千峰教育链表NodeList(java)
最新推荐文章于 2024-07-19 16:48:54 发布
这个博客展示了如何在Java中实现一个名为NodeManger的类,该类用于管理链表的操作,包括添加、删除、查找、更新、插入元素。类内部包含一个私有内部类Node用于构建链表节点。所有操作都通过递归方式完成,确保了链表的正确操作。
摘要由CSDN通过智能技术生成