链表数据结构1

package day14;

/**
 * @version 1.0
 * @ClassName Test02
 * @category javaSE
 * @QQ 1826286736
 * @Author ${每特教育JY-010-小萌新}
 * @Date 2021/11/24 16:26
 **/
public class Test02<E> {
    private E e;

    Test02<E> Next;

    public static void main(String[] args) {
        /**
         * 链表数据结构特点:增删效率非常高、查询效率非常低,时间复杂度为o(n)
         * 单向链表的定义:当前元素指向下一个元素  1 → 2 → 3 → 4
         * 双向链表的定义:当前元素指向上一个元素的同时也指向下一个元素 1 ←→ 2 ←→ 3 ←→ 4
         */
        Test02<String> node01 = new Test02<>();
        node01.e = "mayikt";
        Test02<String> node011 = new Test02<>();
        node011.e = "meite";
        Test02<String> node012 = new Test02<>();
        node012.e = "6666";
        Test02<String> node013 = new Test02<>();
        node013.e = "tianxj";
        node01.Next = node011;
        node011.Next = node012;
        node012.Next = node013;
        System.out.println(node01.e);
        System.out.println("------");
        ergodic(node01);
        Test02<String> node014 = new Test02<>();
        node014.e = "douyyy";
        addElement(node013, node014);
        ergodic(node01);
        System.out.println("---删除后的链表---");
        /**
         * 删除链表是非常简单的
         * 直接把想要删除的节点的上一个节点改为指向想要删除的节点的下一个节点
         * node01.Next = node011;改为node01.Next=node012;
         * node011节点就删除了
         */
        node01.Next=node012;
        ergodic(node01);
    }

    public static void ergodic(Test02<?> n00) {
        /**
         * 这是遍历链表的方法
         * 通过while循环取出每一个节点
         */
        // 把传递的头节点n00赋值给临时节点n001
        Test02<?> n001 = n00;
        //
        while (n001 != null) {
            System.out.println(n001.e);
            // 把临时节点的下一个节点n001.Next赋值给临时节点n001
            n001 = n001.Next;
        }
    }

    public static void addElement(Test02<String> TailNode, Test02<String> newNode) {
        /**
         * 这是新增元素的方法
         * 传递一个尾结点,一个新增的节点 最后一个节点.next 就是我们新增的节点
         * 找到最后一个元素,最后一个元素.next
         * 链表不用考虑扩容性
         */
        // 最后一个节点.next 就是我们新增的节点
        TailNode.Next=newNode;
        System.out.println("-----新增后的链表-----");

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值