• 实现链表


    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;
            }
        }
    }
  • 相关阅读:
    Linux的常用shell命令
    SpringBoot打包第三方本地jar包
    vscode显示扩展宿主意外终止
    远程总是断的原因
    MySQL Online DDL 梳理
    MySQL 线程池总结(转发)
    MySQL Online DDL 原理
    bandit工具分析
    在我们写sql时候,where in 中的条目数超过1000条时候会报ORA_01795
    安装程序失败“请求添加或删除指定服务器上的功能失败”
  • 原文地址:https://www.cnblogs.com/songfahzun/p/8711794.html
Copyright © 2020-2023  润新知