java数据结构与算法--链表

1.链表

Node节点类

package com.evior.linklist;

public class Node {

    //数据域
    public long data;
    //指针域
    public Node next;

    public Node(long value) {
        this.data=value;
        next=null;
    }

    /**
     * 显示的方法
     */
    public void  display(){
        System.out.println(data+" ");
    }
}



LinkList链表类

package com.evior.linklist;

public class MyLinkList {


    //头节点
    private Node first;

    public MyLinkList(){
        first=null;
    }


    //插入
    public void insertFirst(long value){
        Node node=new Node(value);
        node.next=first;
        first=node;
    }


    //删除
    public Node deleteFirst(){
        Node temp=first;
        first=temp.next;
        return temp;
    }

    //打印
    public void display(){
        Node current=first;
        while (current!=null){
            current.display();
            current=current.next;
        }
    }


    //查找的方法
    public Node find(long value){
        Node current=first;
        while (current.data!=value){
            if (current==null){
                return null;
            }
            current=current.next;
        }
        return current;
    }

    //删除方法,根据数据域来进行删除
    public Node delete(long value){
        Node current=first;
        Node previous=first;
        while (current.data!=value){
            if (current==null){
                return null;
            }
            previous=current;
            current=current.next;
        }
        //判断删除的是否为头结点
        if (current!=first){
            previous.next=current.next;
            current.next=null;
        }else {
            current=first;
            first=current.next;
            current.next=null;
        }
        return current;
    }


}
 
 

2.测试


package com.evior.linklist;

public class Test {

    public static void main(String[] args) {

        MyLinkList myLinkList=new MyLinkList();
        myLinkList.insertFirst(1);
        myLinkList.insertFirst(2);
        myLinkList.insertFirst(3);
        myLinkList.display();
        myLinkList.deleteFirst();
        myLinkList.display();
        myLinkList.insertFirst(4);
        myLinkList.display();
        myLinkList.delete(2).display();
        myLinkList.display();
    }
}

3、结果

package com.evior.linklist;

public class Test {

    public static void main(String[] args) {

        MyLinkList myLinkList=new MyLinkList();
        myLinkList.insertFirst(1);
        myLinkList.insertFirst(2);
        myLinkList.insertFirst(3);
        myLinkList.display();
        myLinkList.deleteFirst();
        myLinkList.display();
        myLinkList.insertFirst(4);
        myLinkList.display();
        myLinkList.delete(2).display();
        myLinkList.display();
    }
}






猜你喜欢

转载自blog.csdn.net/qq_30904985/article/details/80157595