算法练习--链表

感言

        由于蓝桥杯比赛在即,为了能取得一个更好的成绩,我们本周加强了对算法的练习。在每天三道算法题的基础上,我们又展开了对数据结构的学习——数组以及链表。总体来说,因为专业课有C语言版的数据结构,再次去学Java数据结构就显得不那么迷茫了。

总结

        也是为了提高我们对算法的理解,上周日学长专门给我们讲了一节算法课。让我们对算法的感悟有了一定的升华。

数据类型

        众所周知,每个语言的数据类型都大致相通,整形的long,int以及它的包装类Integer、字符型char包装类Character、字符串String、浮点型float,double等。如果你曾留意过算法题,它大多数都会给你案例的数据范围。

int类型对应数量级10^9。

long类型对应数量级10^19。

常用API

·Arrays.sort()返回一个正序的数组(将数组按升序排列)

·Collections.sort()返回一个正序的集合(将集合按升序排列)

·Integer.toBinaryString()在基数2中返回整数参数的字符串表示形式为无符号整数(转2进制)

·Integer.toOctalString()转8进制

·Integer.toHexString()转16进制

以及Math中的一些常见方法abs(),min(),max()等等

链表

        总体来说,链表就是通过节点定义一个next指针去连接数据。链表的每个节点都有其指针域和数据域,需要提到的一点就是头节点了,它是一个特殊的指针,永远指向链表的第一个数据,方便后期对链表的一些操作。

定义节点

class HeroNode {
    public int no;
    public String name;
    public String nickname;
    public HeroNode next;

    public HeroNode(int no, String name, String nickname) {
        this.no = no;
        this.name = name;
        this.nickname = nickname;
    }

    @Override
    public String toString() {
        return "HeroNode{" +
                "no=" + no +
                ", name='" + name + '\'' +
                ", nickname='" + nickname + '\'' +
                '}';
    }
}

遍历链表

  public void list() {
        //判断链表是否为空
        if (head.next == null) {
            System.out.println("链表为空");
            return;
        }
        //因为头结点head不能动,需要一个辅助变量来帮助遍历
        HeroNode temp = head.next;
        while (true) {
            //判断是否到链表最后
            if (temp == null) {
                break;
            }
            System.out.println(temp);
            temp = temp.next;
        }
    }

最后

        下周六就是蓝桥杯比赛了,对下周来说,依旧要专注于算法,希望能取得一个满意的成绩~!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值