美文网首页数据结构和算法
数据结构-线性表-单链表-01

数据结构-线性表-单链表-01

作者: 愤怒的奶牛 | 来源:发表于2019-08-26 12:16 被阅读0次

线性数据结构- 单链表

线性表-单链表.png

java 定义单链表

/**
 * 定义链表节点,单链表
 */
public class Node {
    //数据域,也可以是泛型 T
    private Object data;
    // 持有下一个对象
    private Node next;

    // 单链表中的头和尾
    private Node header;
    private Node tail;

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

    /**
     * 初始化单链表,设置 头和 尾
     * @param node
     * @return
     */
    public Node init(Node node) {
        this.header = node;
        this.tail = header;
        return this;
    }

    /**
     * 向链表中最加数据,返回当前对象
     * @param node
     * @return
     */
    public Node addToTail(Node node) {
        tail.next = node;//队尾指向新的节点
        this.tail = node;// 新节点变成队尾
        return this;
    }

    public static void main(String[] args) {
        Node header = new Node(1);

        header.init(header)
                .addToTail(new Node(2))
                .addToTail(new Node(3))
                .addToTail(new Node(4))
                .addToTail(new Node(5))
        ;

        //遍历单向链表
        Node currentNode = header.header;
       for (;;) {
           System.out.println(currentNode.data);
           currentNode = currentNode.next;// 取下一个节点
           if (currentNode == null) {
               break;
           }
       }
    }
}

添加到队尾(tail)

  /**
     * 向链表中最加数据,返回当前对象
     * @param node
     * @return
     */
    public Node addToTail(Node node) {
        tail.next = node;//队尾指向新的节点
        this.tail = node;// 新节点变成队尾
        return this;
    }

向链表中添加数据,添加到队头

    /**
     * 向链表中添加数据,添加到队头
     * @param node
     * @return
     */
    public Node addToHeader(Node node) {
        node.next = this.header; //指向队头
        this.header = node; // 该节点变成头节点
        return this;
    }

节点插入到指定得位置

    /**
     * 将 节点 插入目标节点后面
     * @param target
     * @param node
     * @return
     */
    public Node after(Node target, Node node) {
        node.next = target.next; // 将目标节点 得下一个节点 付给新节点得下一个。
        target.next = node;// 设置目标节点得下一个节点指向 新节点
        return this;
    }

相关文章

网友评论

    本文标题:数据结构-线性表-单链表-01

    本文链接:https://www.haomeiwen.com/subject/wyrkectx.html