java实现顺序队列

package xianxinTable;

import java.util.ArrayList;
import java.util.Iterator; import com.sun.java_cup.internal.internal_error; public class queue_self<E> implements Iterator<E> {
// 定义一个简单的迭代器 public iterator itertor(){ return new iterator(); } class iterator implements Iterator<E> {
// 要迭代的长度
private int size;
// 当前迭代到达位置
private int nowsize; iterator() {
size = queue_self.this.length;
nowsize = 1; } public boolean hasNext() {
if (nowsize != size+1) {
// TODO Auto-generated method stub
return true;
} else {
return false;
} } public E next() {
// TODO Auto-generated method stub
int page=nowsize;
nowsize++;
return queue_self.this.datalist.get(page-1);
} public void remove() {
// TODO Auto-generated method stub } } // 定义数组长度
private int length;
// 存放数组内容
private ArrayList<E> datalist;
// 队列头
private int head;
// 队列尾
private int rear; // 队列初始化
public queue_self() {
datalist = new ArrayList<E>();
this.length = 0;
head = 0;
rear = 0; } // 入队
public boolean offer(E data) {
if (true) {
this.datalist.add(data); length++;
return true;
} else { return false;
} } // 出队
public E poll() {
E e = null;
if (length == 0) {
return e; } else {
e = this.datalist.get(head);
this.datalist.remove(head);
length--;
return e; } } // 查看队首元素
public E peek() {
E e = null;
if (length == 0) {
return e; } else {
e = this.datalist.get(head); return e; } } // 返回队列长度 public int length() { return this.length; } public static void main(String[] args) { queue_self<Integer> q = new queue_self<Integer>();
q.offer(2);
q.offer(44);
q.offer(66);
q.poll();
Iterator<Integer> it=q.itertor();
while(it.hasNext()){ System.out.println(it.next()); } } public boolean hasNext() {
// TODO Auto-generated method stub
return false;
} public E next() {
// TODO Auto-generated method stub
return null;
} public void remove() {
// TODO Auto-generated method stub } }

  输出:

44
66

  

java代码实现顺序队列的更多相关文章

  1. Java代码执行顺序(静态变量,非静态变量,静态代码块,代码块,构造函数)加载顺序

    //据说这是一道阿里巴巴面试题,先以这道题为例分析下 public class Text { public static int k = 0; public static Text t1 = new ...

  2. Java 代码运行顺序

    1.静态代码块,只执行一次,从上到下,先父类后子类 2.父类构造代码块,从上到下,然后父类构造方法,执行次数与实例化次数相关 3.子类构造代码块,从上到下,然后子类构造方法,执行次数与实例化次数相关

  3. Java代码执行顺序及多态体现

    /** * Description: * 基类的引用变量可以只想基类的实例对象也可指向其子类的事来对象 * 接口的引用变量也可以指向实现类的实例对象 * 程序调用的方法在运行期才动态绑定 * 绑定指将 ...

  4. java代码简单实现队列

    1. 基于链表简单实现 import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; / ...

  5. java代码执行顺序

    class HelloA { public HelloA() { System.out.println("HelloA"); } { System.out.println(&quo ...

  6. 数据结构Java实现07----队列:顺序队列&顺序循环队列、链式队列、顺序优先队列

    一.队列的概念: 队列(简称作队,Queue)也是一种特殊的线性表,队列的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置插入和删除,而队列只允许在其一端进行插入操作在其 ...

  7. java 实现简单的顺序队列

    package com.my; import java.util.Arrays; /** * 顺序队列 * @author wanjn * */ public class ArrayQueue { p ...

  8. 数据结构----队列:顺序队列&顺序循环队列、链式队列、顺序优先队列

    一.队列的概念: 队列(简称作队,Queue)也是一种特殊的线性表,队列的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置插入和删除,而队列只允许在其一端进行插入操作在其 ...

  9. 详解JavaScript的任务、微任务、队列以及代码执行顺序

    摘要: 理解JS的执行顺序. 作者:前端小智 原文:详解JavaScript的任务.微任务.队列以及代码执行顺序 思考下面 JavaScript 代码: console.log("scrip ...

随机推荐

  1. log4net生成多个日志文件

    使用Log4Net日志组件时,经常会碰到这样一种场景,我想把错误的日志记录在Error.log文件中,而把操作的日志放在Operation.log文件中 经过几番尝试,终于实现了,在此把Log4Net ...

  2. js大法处理无法点击的问题

    js定位的其他方法:

  3. AngularJS:教程

    ylbtech-AngularJS:教程 1.返回顶部 1. AngularJS 教程 AngularJS 通过新的属性和表达式扩展了 HTML. AngularJS 可以构建一个单一页面应用程序(S ...

  4. oracle里的统计信息

    1 oracle里的统计信息 Oracle的统计信息是这样的一组数据,存储在数据字典,从多个维度描述了oracle数据库对象的详细信息,有6种类型 表的统计信息:记录数.表块的数量.平均行长度等 索引 ...

  5. ORACLE 存储过程解及表解锁和停止执行

    查看进程: select * from v$process 根据存储过程名称查找是否被锁: select * FROM dba_ddl_locks where name =upper('sp_1'); ...

  6. Py修行路 python基础 (二十三)模块与包

    一.模块 1)定义: 模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 2)为何要用模块: 退出python解释器然后重新进入,那之前定义的函数或者变量都将丢失,因 ...

  7. 网站漏洞扫描并自动化工具-XAttacker

    注:该脚本根据网站的cms类型来扫描,所以推荐用来扫外国的站 运行脚本 ┌─[root@sch01ar]─[/sch01ar/XAttacker] └──╼ #perl XAttacker.pl 询问 ...

  8. PHP函数(一)-变量

    1.全局变量 <?php $a = 1; $b = 2; function test(){ echo $a + $b."<br>"; //运行结果为0 } tes ...

  9. 委托BegionInvoke和窗体BegionInvoke

    委托BegionInvoke是指通过委托方法执行多线程任务,例如: //定义委托成员变量 delegate  void dg_DeleAirport(); //指定委托函数 dg_DeleAirpor ...

  10. 【知识碎片】JavaScript篇

     40.选择器组合 逗号是多选择器空格 是子子孙孙尖括号 只找儿子 39.失去焦点事件blur $("input").blur(function(){ $("input& ...