类似队列的java实现
来源:互联网 发布:js 双重级联 编辑:程序博客网 时间:2024/05/16 10:41
实现了栈后,索性又实现以下队列。本文主要介绍队列的定义、队列的java实现和队列的作用。
队列的定义
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表,特点是“先进先出,后进后出”。
队列的实现
这里说一下,我这实现的和队列的定义其实不符合,只是遵从了先进先出的思想。为了防止出现“假溢出”的问题,每次删除元素都添加了一个动作:将所有元素前移一位,这样对头始终在数组的开始。基本思想和栈的实现一样,用一个字符串数组作为队列的容器,数组的第一个元素为队列头部,并用一个int值作为队列的尾部指针。当插入队列的时候,直接将值放入数组的相应位置; 删除队列元素的时候,用到System.arraycopy()这个方法将除了队列头部的数据向前移动一位。注意这个过程中的队列尾部指针的变化。
/** *基于String数组的队列,数组第一个为队头,插**入的字符依次加入数组 */public class Queue{ /* *队列容器数组 */ private String[] queueStr; /* *队尾指针 */ private int rear; /* *队列容器数组的长度 */ private int length = 0; public Queue(){ this.rear = -1; this.length = 100; queueStr = new String[length]; } public Queue(int length){ this.rear = -1; this.length = length; queueStr = new String[length]; } public void push(String s){ if(rear < queueStr.length - 1){ queueStr[++rear] = s; }else{ print("error!\n"); } } public String pop(){ if(rear >= 0) { String s = queueStr[0]; System.arraycopy(queueStr,1,queueStr,0,rear + 1); rear--; return s; }else{ print("pop error!"); return null; } } public String toString(){ String s = ""; for(int i = 0; i <= rear; i++){ s += queueStr[i] + " "; } return s; } private void print(String s){ System.out.print(s); }}
其实实现队列的主要难度是删除操作。因为为了避免“假溢出”,考虑移位,我去看了arraylist的实现,发现其remove方法使用了“System.arraycopy()”这个方法,就搬到这个程序来了!就是提醒一下自己,要多看这些大牛的源码!
队列的用途
队列和显示中的排队类似,经常用来模拟排队。看看后续写一个模拟程序吧。^_^
1 0
- 类似队列的java实现
- java 实现的队列
- java 队列的实现
- 队列的实现(JAVA)
- 队列的实现-java
- 队列的java实现
- JS类似JAVA的replaceAll()的实现
- C++实现类似JAVA反射的基本功能
- C++实现类似JAVA的反射
- C++实现类似JAVA的反射
- C++实现类似JAVA的反射 .
- thinkphp中类似java过滤器的实现
- java实现队列及队列的应用
- Java简单队列的实现
- Java阻塞队列的实现
- Java阻塞队列的实现
- Java阻塞队列的实现
- Java阻塞队列的实现
- php源码之字符串与二进制相互转换
- Java线程的学习_线程池
- 编写jquery插件
- Android RecyclerView工作原理分析(下)
- 利用mfc动态画圆(已知圆心坐标,半径,以及每次转过的角度)
- 类似队列的java实现
- Android Studio 2.2 中几个实用的新功能
- C#中new的几种用法
- string::getline VS stream::getline
- 排序算法之 冒泡排序算法(Bubble Sort):(Python)
- 全局变量和局部变量的区别
- hiho一下 第二十八周 #1105 : 题外话·堆 【堆】
- 用C语言实现快速排序算法
- 【HPU 1012 QAQ的区间统计】