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;
            }
        }
    }
  • 相关阅读:
    Eclipse添加Android library错误的原因
    The primitive Java types
    TFS怎么查找一个用户提交的所有代码
    easyui tabs
    错误 CS0012 类型“xxx”在未引用的程序集中定义。必须添加对程序集“xxxx xxxxx”的引用
    Sql Server 列转逗号隔开的字符串 和 逆转
    DataTable程序分页 不推荐。
    EF执行存储过程并且返回DataSet
    EF运用成ADO.NET操作返回DataSet或者DataTable
    Sql 查询 表名 视图名称等
  • 原文地址:https://www.cnblogs.com/songfahzun/p/8711794.html
Copyright © 2011-2022 走看看