博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构之【队列】
阅读量:7034 次
发布时间:2019-06-28

本文共 1211 字,大约阅读时间需要 4 分钟。

3 数据结构之队列

3.1 什么是队列

Queue也是一种线性结构,相比数组,队列的操作是数组的子集。

只能从队尾添加元素,从队首取出元素。

和生活中的排队是一样的,先到先得。

 

 LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用。下面我们用上一节的动态数组来实现自己的队列这种数据结构。

3.2 队列的基本实现

有了实现栈的经验,现在实现队列会比较容易些。

先写队列的接口Queue.java

public interface Queue
{ void enqueue(E e); // 入队列 E dequeue(); //出队列 E getFront(); //获取队首元素 int getSize(); //获取队列中元素个数 boolean isEmpty();}

 

然后实现这些接口,同样基于上一节实现的动态数组。

public class ArrayQueue
implements Queue
{ private Array
array; public ArrayQueue(int capacity) { array = new Array<>(capacity); } public ArrayQueue() { array = new Array<>(); } @Override public void enqueue(E e) { array.addLast(e); } @Override public E dequeue() { return array.removeFirst(); } @Override public E getFront() { return array.getFirst(); } @Override public int getSize() { return array.getSize(); } @Override public boolean isEmpty() { return array.isEmpty(); }}

这样我们的队列就实现了

 

代码: https://github.com/zhang-anan/DataStructure/tree/master/src/cc/myall/demo03

转载于:https://www.cnblogs.com/zhang-anan/p/10088993.html

你可能感兴趣的文章
常用的DOS命令
查看>>
Linux学习:第一天_笔记
查看>>
使用MySQL的慢查询日志找到低效的SQL语句
查看>>
SQL语法
查看>>
我的友情链接
查看>>
django小例子
查看>>
开源数据库中间件kingshard横空出世
查看>>
配置iptables实现双机间端口转发
查看>>
SQL分类及常用语句
查看>>
linux下c/c++混合编程
查看>>
FastCGI和CGI运行差异知识普及
查看>>
unix、linux下的系统性能监控工具nmon
查看>>
nginx的压力测试、访问方式及加密
查看>>
jsonp技术访问天气Demo
查看>>
改编关于ZipInputStream的一个小程序
查看>>
我的友情链接
查看>>
安装Redis的图形界面管理工具phpRedisAdmin
查看>>
Flash object和embed标签
查看>>
gtk与xlib之间相关连接
查看>>
解决ImportError: cannot import name HTTPSHandler
查看>>