数据结构——链队列(GIF图解)

一、链队列

队列的链式存储结构,其实就是线性表的单链表,只不过它只能尾进头出而已,我们把它简称为链队列。为了操作上的方便,我们将队头指针指向队列的虚拟头结点的后一个结点,而队尾指针指向最后一个结点。

二、链队列的实现

创建一个链表实现queue的接口
public class LinkedQueue<E> implements Queue<E> {
    private LinkedList<E> list;
    public LinkedQueue(){

        list=new LinkedList();
    }
}
获取队长和判空
	//获取队长
    @Override
    public int getSize() {

        return list.getSize();	//调用list的获取长度的函数
    }
	//判空
    @Override
    public boolean isEmpty() {

        return list.isEmpty();	//调用list的判空函数
    }

进队/出队

进队列这里调用了 list 的尾插函数,直接将新结点的地址给rear当前所指结点的指针域,再将rear指针后移即可。(示意图如下)
在这里插入图片描述出队这里调用了 list 的头删函数,将第一个节点的指针域赋给头结点的指针域即可。(示意图如下)
在这里插入图片描述

	//进队
    @Override
    public void enquque(E e) {

        list.addLast(e);  //调用了 list 的尾插函数
    }
	//出队
    @Override
    public E dequeue() {

        return list.removeFirst();	//调用了 list 的头删函数
    }

获取 队头/队尾 元素
    @Override
    public E getFront() {

        return list.getFirst();  //调用list的获取表头元素的函数
    }

    @Override
    public E getRear() {

        return list.getLast();	//调用list的获取表尾元素的函数
    }

清空队列
    @Override
    public void clear() {

        list.clear();  //调用list的清空表的函数
    }

迭代器
    @Override
    public Iterator<E> iterator() {

        return list.iterator();	//调用list的迭代器
    }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值