数组队列
数组有固定的长度,里面放置的数据也都是固定的一个类型,
当不能确定需要的长度时,实例化数组时的长度可能不够用,又或者太大造成空间浪费,
因此,我们需要一个更加灵活的东西来存储东西,
它的长度可以随着需求变化,里面存放的内容也可以多种多样。
这就是队列
队列在本质上也是一种数组,但它是活的,可变程度很大。
队列里面可以写多种方法对其进行添加,移除等多种操作。
为了让队列里可以存储多种不同类型的数据,在定义队列类中的数组类型 时可以这样。
private Object[] array = new Object[0];
这就使得任何类型的内容都可以存入该队列的数组中。
但是,有些时候使用队列只想要存入某种特定类型的数据,这时是否要重写一个队列,
在其中定义一个你想要的数据类型的数组呢?
不用这么麻烦。
/** * 队列类 * @param args */ public class Arraylist<E> { private int size = 0; private Object[] array = new Object[0]; // 添加新元素 public void add(E e) { // 定义一个比原数组长一个单位的新数组array1 Object array1[] = new Object[size + 1]; // 把原数组中的元素传给新数组 for (int i = 0; i < size; i++) { array1[i] = array[i]; } // 把新元素添加给新数组的最后一个位置 array1[size] = e; // 让原数组指向新数组 size++; array = array1; } // 删除,根据下标 public void delete(int n) { if (n >= 0 && n < size) { // 定义一个比原数组短一个单位的新数组array1 Object array2[] = new Object[size - 1]; // 把被删除元素前的元素原样传给新数组 for (int i = 0; i < n; i++) { array2[i] = array[i]; } // 把被删除元素后的元素向前移动一位传给新数组 for (int i = n; i < size - 1; i++) { array2[i] = array[i + 1]; } // 数组元素个数减少 size--; // 让原数组指向新数组 array = array2; } } //得到对象,根据下标 public E gete(int n){ if(n>=0&&n<getsize()){ E e=(E) array[n]; return e; } return null; } // 得到数组元素个数 public int getsize() { return size; } }
这样写好队列之后,想要使用队列时,只需要在初始化的时候这样:
public Arraylist<Chess> arrc = new Arraylist();
在尖括号里表明你想存的数据类型就可以啦~
很方便吧。
相关推荐
队列是一种先入先出的数据结构(FIFO),只允许在前端(front)删除,在后端(rear)插入。容量为capacity大小的内存,只能存capacity-1的元素,其中rear的位置始终为空。 本文实现的队列,功能如下: 1 获取元素内容 ...
普通队列 1)将尾指针往后移:rear+1,当front==rear【空】 2)若尾指针rear小于队列的最大下标maxSize-1,则将数据存入rear所指的数中组元素中,否则无法存入数据。rear==maxSize-1[队列满] 环形队列 1)front变量的...
循环链表队列的代码实现 循环数组队列的代码实现
学习数据结构过程中,亲自在VC++上编译通过的使用数组实现队列的源代码,与大家共享。
NULL 博文链接:https://128kj.iteye.com/blog/1665616
主要介绍了Java数组队列概念与用法,结合实例形式分析了Java数组队列相关概念、原理、用法及操作注意事项,需要的朋友可以参考下
c++ 队列数组实现,这个简单的东西。队列的数组实现
由数组实现队列,包括队列的创建、入队和出队。通过打印显示出队的结果。正在学习数据结构的童鞋可以参考。
Java数据结构对象数组,数组堆栈,数组队列,SLL,动态堆栈和队列,DLL,BST,对象的BST,顺序文件,流,直接访问文件(随机访问文件)
本实例实现了泛型顺序队列和泛型循环队列的基本操作,并通过界面演示了队列中元素的变化,最后结合栈实现了回文字符串的判断,通过本实例可以充分掌握C#队列数据结构。
PHP的数组处理函数还可以将数组实现队列,堆栈是“先进后出”。在堆栈中,最后压入的数据(进栈),将会被最先弹出(出栈)。而队列是先进先出,就如同银行的排号机
配套代码讲解:https://blog.csdn.net/songchuwang1868/article/details/90200251 ...同步队列-无锁队列-循环数组无锁队列 同步队列-无锁队列-循环数组无锁队列 同步队列-无锁队列-循环数组无锁队列
java数组实现循环队列。包括入队, 出队,输出队列。 队列先入先出。
通过不断地修改命名规范、程序逻辑等毛病 ,终于算完成了。这算是我第一个比较认真的小程序吧!仍需努力啊。
更好了解数组和队列在C++应用开发当中使用,明白C++的变量内存结构。
数组循环队列
该存储库包含一个Arduino库,该库为您的项目提供了一个用于字符数组(char [])的队列。 入门 本节将为您提供指导,以帮助确定该库是否适合您的需求以及如何将其添加到您的项目中。 先决条件 该库是使用Microsoft的...
利用数组和链表实现队列的基本操作,如入队,出队,读出队首元素
数组 链表 队列 栈 哈希表 字典树 树 图 算法 I II III IV V VI VII VIII IX X XI XII IX X 冒泡排序 选择排序 插入排序 希尔排序 归并排序 快速排序 堆排序 计数排序 桶排序 基数排序 递归 查找算法 贪心算法 分治...