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. Jenkins修改端口号(windows系统)

    windows下改端口号: Jenkins安装成功后,默认的端口为8080. 如果该端口号与其他服务的端口号冲突,则需要更改Jenkins的端口号. 具体方法为: 修改Jenkins安装目录下的 je ...

  2. 1099 Build A Binary Search Tree

    1099 Build A Binary Search Tree (30)(30 分) A Binary Search Tree (BST) is recursively defined as a bi ...

  3. 内核中的内存申请:kmalloc、vmalloc、kzalloc、get_free_pages 之间的区别

    kmalloc   vmalloc   kzalloc   get_free_page()是内核空间申请内存空间函数 malloc是用户空间申请内存函数 一 ,kmalloc() 与 kfree()  ...

  4. linux输入子系统之按键驱动

    上一节中,我们讲解了Linux  input子系统的框架,到内核源码里详细分析了输入子系统的分离分层的框架等. 上一节文章链接:http://blog.csdn.net/lwj103862095/ar ...

  5. C#三层架构详细解剖

    深入浅出C#三层架构(转) 本文用一个示例来介绍如何建设一个三层架构的项目,并说明项目中各个文件所处的层次与作用.写本文的目的,不是为了说明自己的这个方法有多对,而是希望给那些初学三层架构却不知从何入 ...

  6. Ehcache入门介绍一

    EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider. 特性有: 1. 快速轻量 Ehcache的线程机制是为大型高并发系统设 ...

  7. Django Rest Framework 3

    目录 一.版本 二.解析器 三.序列化 四.请求数据验证 一.版本 程序也来越大时,可能通过版本不同做不同的处理 没用rest_framework之前,我们可以通过以下这样的方式去获取. 1 clas ...

  8. 自定义ListView里面的Item的内容

    我们不可能满足只是往每个item里面填字就足够,像QQ的好友列表就是一个ListView,每个Item里面有头像.名字啊.签名什么的,内容丰富.那我们要怎么定义一个内容丰富的item呢? 要用到Ada ...

  9. HTML5 使用sessionStorage实现页面返回刷新

    需求:在某个列表页面跳转到增加新项目页面后需要返回到前一个页面 并且数据最新数据.刚开始是做法是 history.back();方法 返回后页面不会自动刷新的.在新的页面重新访问之前页面的链接可以访问 ...

  10. ubuntu12 安装redis和phpRedisAdmin详细流程

    一.Ubuntu安装redis(redis默认端口6379) 方式一.直接下载源码,编译(redis可以编译源码之后直接运行,不需要安装) 1.1执行命令,从官网下载源码编译: $ wget http ...