简单手写LinkedList

一、LinkedList的增删改查

package com.自己实现LinkedList.自己的LinkedList;

public class MyLinkedList {
    private Node node01;
    int size = 1;

    public void add(Object object) {
        Node node = new Node(object);
        if (node01 == null) {
            node01 = node;
        } else {
            Node temp = node01;
            while (temp.getNext() != null) {
                temp = temp.getNext();
            }
            temp.setNext(node);
            size++;
        }
    }

    public void add(int index, Object object) {
        Node node = new Node(object);
        Node temp = node01;
        Node temp2 = node01;
        int count = 0;
        if (index > size) {
            System.out.println("index太大了");
        }else {
            while (count < index) {
                count++;
                temp2 = temp;
                temp = temp.getNext();
            }
            temp2.setNext(node);
            node.setNext(temp);
            size++;
        }
    }

    public void replace(int index, Object object) {
        Node temp = node01;
        int count = 0;
        while (count < index) {
            count++;
            temp = temp.getNext();
        }
        temp.setData(object);
    }

    public boolean remove(int index) {
        Node temp = node01;
        Node temp2 = node01;
        int count = 0;
        if (index > size) {
            return false;
        } else if (index == size) {
            while (count < index - 1) {
                count++;
                temp2 = temp;
                temp = temp.getNext();
            }
            temp2.setNext(null);
            size--;
        } else {
            while (count < index) {
                count++;
                temp2 = temp;
                temp = temp.getNext();
            }
            temp2.setNext(temp.getNext());
            temp.setNext(null);
            size--;
            return true;
        }
        return true;
    }

    public Object show(int index) {
        int count = 0;
        Node temp = node01;
        if (index >= size) {
            return null;
        } else {
            while (count < index) {
                count++;
                temp = temp.getNext();
            }
            return temp.getData();
        }
    }

    public static class Node {
        private Object data;
        private Node next;

        public Node() {

        }

        public Object getData() {
            return data;
        }

        public void setData(Object data) {
            this.data = data;
        }

        public Node getNext() {
            return next;
        }

        public void setNext(Node next) {
            this.next = next;
        }

        public Node(Object data) {
            this.data = data;
        }

    }
}

二、测试类

package com.自己实现LinkedList.自己的LinkedList;

public class Test {
    public static void main(String[] args) {
        MyLinkedList myLinkedList = new MyLinkedList();
        for (int i = 0; i <10 ; i++) {
            myLinkedList.add(i);
        }

        for (int i = 0; i < myLinkedList.size; i++) {
            Object show = myLinkedList.show(i);
            System.out.print(show+" ");
        }

        System.out.println();
        System.out.println("size:"+myLinkedList.size);

        myLinkedList.add(7,10);
        for (int i = 0; i < myLinkedList.size; i++) {
            Object show = myLinkedList.show(i);
            System.out.print(show+" ");
        }

        System.out.println();
        System.out.println("size:"+myLinkedList.size);

        myLinkedList.remove(10);
        for (int i = 0; i < myLinkedList.size; i++) {
            Object show = myLinkedList.show(i);
            System.out.print(show+" ");
        }

        System.out.println();
        System.out.println("size:"+myLinkedList.size);

        myLinkedList.replace(1,9);

        for (int i = 0; i < myLinkedList.size; i++) {
            Object show1 = myLinkedList.show(i);
            System.out.print(show1+" ");
        }
    }
}

测试结果

posted @ 2021-07-09 13:49  GzhAnkh  阅读(49)  评论(0)    收藏  举报