数据结构(java版)之数组队列篇

数组队列的实现原理

队列的定义

队列(queue)是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。

队列的数据元素又称为队列元素。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。因为队列只允许在一端插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故队列又称为先进先出****(FIFO—first in first out)线性表
队列分为:
①、单向队列(Queue):只能在一端插入数据,另一端删除数据。
②、双向队列(Deque):每一端都可以进行插入数据和删除数据操作。

数组队列的原理

数组的大小是根据要添加的数据来决定的,即根据添加、删除数据的个数,来创建新的数组,而原数组名中存储的是新数组对象在堆内存空间的首地址
即先在新数组名中存储新数组对象的首地址,再把这个首地址给原来数组名。
而原来的数组对象,由JVM(java虚拟机)的垃圾回收机制处理(销毁对象,释放内存空间),因此不需要自己处理。

数组队列的实现

是数组队列:定义类,封装对数组的操作。

特别地

如果对数组队列有以下要求:
1.在特殊情况,数组队列中只能存储某一种数据类型,如果存储其他的数据就报错。
2.在特殊情况,数组中可以存储任意一种数据类型的数据
则可以利用

泛型<K/V/E/T>…

泛型不是Java中的一种数据类型
只是一个特殊的符号,可以在你不确定要存储什么类型的数据时,用
这个符号可以代替Java中所有的数据类型
使用的时候,可以用对应的数据类型来代替这个符号,这样
就只能存储指定的这一种数据类型;
如果不指定,则任意一种数据类型都可以存储。
注意:因为它不是数据类型,因此构造数组时不要将数组的数据类型改为 E,但是方法中的参数都要改
以下为几个简单示例(代码不完整,请勿使用)

ublic class ArrayList<E>{
       private Object[] array = null;
       public boolean add(int index, MyArrayList<E> mal) {
		        return false;
	   }
	   public ArrayList() {
		       array = new Object[0];// 实例化数组对象,长度为0
	   }
	   public boolean add(int index, MyArrayList<E> mal) {
               return false;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值