zoukankan      html  css  js  c++  java
  • 实现链表

    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;
            }
        }
    }
  • 相关阅读:
    MySQL用户管理
    MySQL函数
    MySQL数据类型
    MySQL配置
    PowerDesigner之PDM检查
    PowerDesigner之PDM(物理概念模型)
    .NET Reflector反编译的方法
    IBatis.net 输出SQL语句(七)
    SVN 记录冲突、忽略
    SQLServer 窗口函数
  • 原文地址:https://www.cnblogs.com/songfahzun/p/8711794.html
Copyright © 2011-2022 走看看