简单的Java链表Demo

用来记录实现一个简单的java链表

Link 类

public class Link<T>{
    LinkNode<T> FRISTHEADER;  // 链表的第一个头节点
    LinkNode<T> HEADER = null;  // 当前头节点
    LinkNode<T> currentNode = null;  // 当前节点
    private int size;  // 链表大小

    public Link() {
    }

    // 向链表添加元素
    public void add(T t){
        LinkNode<T> node = new LinkNode<>();
        size++;
        node.setContent(t);
        if(size==1){
            FRISTHEADER = node;
            HEADER = node;
            currentNode = node;
        }else{
            currentNode.setNext(node);
            node.setPrev(currentNode);
            currentNode = node;
        }
    }

    // 遍历到下一个节点
    public void next(){
        this.HEADER = this.HEADER.getNext();
    }

    // 获取指定索引处的节点的值
    public void indexValue(int index){
        this.HEADER = this.FRISTHEADER;
        for (int i = 0; i < index; i++) {
            this.HEADER = this.HEADER.getNext();
        }
        System.out.println(HEADER.getContent());
    }

    @Override
    public String toString() {
        this.HEADER = this.FRISTHEADER;
        for (int i = 0; i < size; i++) {
            System.out.println(this.HEADER.getContent());
            this.next();
        }
        return "";
    }
}

LinkNode节点

class LinkNode<T> {
    private T content;
    private LinkNode<T>  next;
    private LinkNode<T>  prev;

    public LinkNode() {

    }

    public T getContent() {
        return content;
    }

    public void setContent(T content) {
        this.content = content;
    }

    public LinkNode<T> getNext() {
        return next;
    }

    public void setNext(LinkNode<T> next) {
        this.next = next;
    }

    public LinkNode<T> getPrev() {
        return prev;
    }

    public void setPrev(LinkNode<T> prev) {
        this.prev = prev;
    }

    public LinkNode(T content, LinkNode<T> next, LinkNode<T>  prev) {
        this.content = content;
        this.next = next;
        this.prev = prev;
    }

}

主入口

public class index {
    public static void main(String[] args) {
        Link<String> link = new Link<>();
        link.add("张三");
        link.add("李四");
        link.add("王五");
        link.add("赵六");
        System.out.print(link);
        System.out.println("--------------------------------------");
        link.indexValue(3);
        System.out.println("--------------------------------------");
        link.add("赵七八");
        System.out.print(link);
    }
}

主要是用于记录 比较的粗糙,未实现全部功能

猜你喜欢

转载自blog.csdn.net/lfeishumomol/article/details/131736130