数据结构(java版)CircularSinglyList(环型单链表)

CircularSinglyList(环型单链表)

代码部分

public class CircularSinglyList<T> {

    public Node<T> head; // 创建头结点

    //构造函数1,只有一个头结点
    public CircularSinglyList() {
        this.head = new Node<T>();
    }

    // 构造函数2,依次将values中的值填入单链表中
    public CircularSinglyList(T[] values, T x) {
        this(); // 构造一个空的单链表
        Node<T> current = this.head;
        int d = 3;

        Node<T> rear = this.head; // 为空的单链表设置头结点
        for (int i = 1; i <= values.length; i++) {
            Node<T> node = (Node<T>) new Node<Integer>(i);
            current.next = node;
            current = node;
        }
        //有数据的部分首尾相连形成一个环。
        current.next = head.next;
        remove(d);
    }


    // 判断单链表是否为空
    public boolean IsEmpty() {
        return this.head.next == null; // 带头结点的单链表判断为空的条件是头结点以后为空
    }

    // 删除第i位结点
    public void remove(int distance) {
        //统计开始从第一个有数据的结点开始
        Node<T> p = head.next;
        //下一个结点是它本身结束
        while (p.next != p) {
            //遍历
            for (int j = 1; j < distance - 1; j++) {
                p = p.next;
            }
            //出局
            System.out.print(p.next.data + "->");
            p.next = p.next.next;
            p = p.next;
        }
        System.out.println(p.data);
    }


}

写在最后:

仅为学习阶段记录写过的代码,方便自己查找,初出茅庐,有不完善的地方烦请指正,如有继承类可查阅数据结构其他博文。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AntyRia

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值