数据结构代码实现 —— 单链表【Java】

发布时间:2024年01月21日

单链表的概述及性质等在篇不做赘述,有需要可移步以下文章:

《数据结构 C语言版 严蔚敏 第2版》:线性表icon-default.png?t=N7T8https://blog.csdn.net/weixin_43551213/article/details/134048025?

以下仅展示使用?Java?实现单链表

?

结点结构定义:

public class SingleLinkedList {
    private int data;
    private SingleLinkedList next;
}

?

追加元素:

public SingleLinkedList append(SingleLinkedList node){
    SingleLinkedList nowNode = this;
    while (true){
        SingleLinkedList nextNode = nowNode.next;
        if(null == nextNode){
            break;
        }
        nowNode = nextNode;
    }
    nowNode.next = node;
    return this;
}

?

删除元素:

public void deleteNext(){
    this.next = this.next().next();
}

?

插入元素:

public void insertNode(SingleLinkedList node){
    node.next = this.next();
    this.next = node;
}

?

打印链表:

public String show(){
    SingleLinkedList tempNode = this;
    StringBuilder builder = new StringBuilder("[" + String.valueOf(tempNode.getData()));
    while (tempNode.next != null){
        tempNode = tempNode.next();
        builder.append(" ").append(String.valueOf(tempNode.getData()));
    }
    builder.append("]");
    return builder.toString();
}

?

测试程序:

/**
 * @Author: QiuXuan
 * @Email: qiu_2022@aliyun.com
 * @Project: DataStructure
 * @Date: 2024-01-19 16:27
 * @Version 1.0
 * @Since 1.0
 **/
public class SingleLinkedListTest {
    public static void main(String[] args){
        SingleLinkedList listNode = new SingleLinkedList(2);
        listNode.append(new SingleLinkedList(3));
        listNode.append(new SingleLinkedList(4));
        listNode.append(new SingleLinkedList(5)).append(new SingleLinkedList(6));
        System.out.print(listNode.getData() + " ");
        System.out.print(listNode.next().getData() + " ");
        System.out.print(listNode.next().next().getData() + " ");
        System.out.print(listNode.next().next().next().getData() + " ");
        System.out.println(listNode.next().next().next().next().getData() + " ");

        listNode.deleteNext();
        System.out.println(listNode.show());

        listNode.insertNode(new SingleLinkedList(7));
        System.out.println(listNode.show());
    }
}

测试程序与上文画的图使用的数据不是一致的!!!?

一? 叶? 知? 秋,奥? 妙? 玄? 心?

文章来源:https://blog.csdn.net/weixin_43551213/article/details/135702888
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。