【数据结构和算法实践-队列】

这里写自定义目录标题

用链表实现队列

用链表实现队列,虽然听起来有点浪费感情~

队列

队列定义,参见百度。
简要的说,进行插入操作的端称为队尾,进行删除操作的端称为队头,或者用一种大家已经默认接受的概念叫做先进先出。(用代码来说)
换一种方式来阐述:
属性 head,tail,size;
方法 isEmpty();push();pop();

public class Queue<V> {

    private Node<V> head;
    private Node<V> tail;
    private int size;
    //构造方法
    public Queue(){
        head = null;
        tail = null;
        size=0;
    }

    public boolean isEmpty(){
        return size==0;
    }

    public int size(){
        return this.size;
    }

    //TODO 返回值和size都没做很好的处理
    public void push(V value){
        Node<V> current = new Node<V>(value);
        if(tail == null){
            head = current;
            tail = current;
        }else{
            tail.next = current;
            tail = current;
        }
        size++;
    }

    //先进先出
    public V pop(){
        V value = null;
        if(head != null){
            value = head.value;
            head = head.next;
            size--;
        }else{
            tail = null;
        }
        return value;
    }
}

反思&总结

目前仍然处于恶补基础阶段,希望这个阶段持续2~3周,并坚持每天一更。届时,会更新下一个系列,就是基于LeetCode上面的题目由简到繁;另外,已经申请仓颉语言,后续这些系列都会加上仓颉编程语言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值