在介绍数组队列之前我想先介绍一下数组是为何物,数组是数据的一中存储结构,其定义为:
数组类型[] 数组名=new 数组类型[数组长度]
然而数组存储类型有许多不足就是长度一定,不能随机应变。于是我们创造队列以弥补这一缺陷。可以说队列是更加完美的数组。其实现方法如下:
package Sameple0419简单的队列; /** * 新建一个学生类 * @author Administrator * */ public class Student { private String name; private int score; public Student(String name ,int score){ this.name=name; this.score=score; } public void show(){ System.out.println("姓名"+name+"学分"+score); } }
定义队列可以自动添加的方法
public class sameple0401 implements NetJavaList{ /** * 向队列中加入一个学生对象 * @author student */ private Student[] scr=new Student[0]; public void add(Student stu){ //新建一个数组 Student[] desk=new Student[scr.length+1]; //将要加入的元素加在新数组的最后一个位置 desk[scr.length]=stu; //用for循环把原来数组里的对象copy到新数组里 for(int i=0;i<scr.length;i++){ desk[i]=scr[i]; } scr=desk; } /** * 取得队列中指定位置的一个对象 * @param index * @return 一个学生对象 */ public Student get(int index){ Student st=scr[index]; return st; } /** * 得到数列的长度,即数列中元素的个数 * @return 数组中元素的个数 */ public int size(){ return scr.length; } }
测试:
public class test { /** * 程序入口 * @param args */ public static void main(String[] args) { //创建一个数列对象 NetJavaList njl=new sameple0401(); for(int i=0;i<5;i++){ //实例化Student类 Student st=new Student("name"+i,i+10); //加入队列 njl.add(st); } //打印队列 printStudent(njl); } /*打印出队列中每个学生的信息*/ public static void printStudent(NetJavaList sl){ System.out.println(sl.size()+"个学生的信息如下:"); for(int i=0;i<sl.size();i++){ Student st=sl.get(i); st.show(); } } }
程序输出结果:5个学生的信息如下:
小结:本博客用数组实现其队列的添加方法。其插入、删除方法与此类似在此不作赘述。
相关推荐
总之,`PriorityQ.java`文件可能是一个简单的数组实现优先队列的示例,通过分析这个文件,我们可以学习到如何利用数组数据结构实现优先队列,以及理解其核心的插入、删除和查找操作。同时,这也能帮助我们更好地掌握...
本话题主要探讨了两种常用的数据结构——数组和链表——在实现队列这一线性数据结构时的应用。队列是一种先进先出(First In First Out, FIFO)的数据结构,它的主要操作包括入队(enqueue)、出队(dequeue)以及...
在本篇文章中,我们不仅介绍了队列的基本概念和操作,还提供了一个简单的示例程序来展示队列的数组实现。虽然这种方法简单有效,但在更复杂的应用场景下可能需要考虑更多的因素,比如队列的动态调整、异常处理等。...
本篇文章将探讨如何在Java中使用数组实现一个循环队列,通过阅读《用数组实现的循环队列(java)》这篇博文,我们可以深入理解循环队列的工作原理以及其在实际编程中的应用。 循环队列是队列的一种变体,它巧妙地...
以下是一个简单的循环队列实现: ```c #include #define MAX_SIZE 10 // 定义队列的最大容量 int queue[MAX_SIZE]; // 创建一个静态数组作为队列 int front = -1; // 初始化队头为-1,表示队列为空 int rear = -...
以下是一个简单的循环队列类的实现: ```cpp #include class CircularQueue { private: int front, rear; // 队头和队尾指针 int capacity; // 队列的最大容量 int* data; // 存储元素的数组 public: ...
为了实现队列操作,数组队列通常需要两个额外的变量来跟踪队头和队尾。添加元素时,如果队列已满,则需要进行扩容操作;移除元素时,如果队列为空,会抛出异常。这种基于数组的队列虽然在空间效率上比链表实现的队列...
### 数组实现循环队列(有bug版) #### 概述 本文档主要介绍了一种基于数组实现的循环队列的代码实现,并对该代码进行了分析,指出了其中存在的问题及可能的原因。 #### 循环队列简介 循环队列是一种特殊的数据...
以下是一个简单的队列实现示例: ```javascript let queue = []; queue.push(1, 2, 3); // 添加元素到队列尾部 console.log(queue); // [1, 2, 3] queue.shift(); // 移除并返回第一个元素 console.log(queue); // ...
以下是一个使用C++模板类实现的循环数组队列: ```cpp template class MyQueue { private: struct myq { int head, rear; T* ele; }; myq* q; const int Max; public: // 构造函数 MyQueue() { q = new ...
以下是一个简单的自定义队列的C#实现: ```csharp public class CustomQueue<T> { private T[] items; private int front, rear; public CustomQueue(int capacity) { items = new T[capacity]; front = rear...
本项目“停车管理系统(用队列数组实现)”是数据结构的一个实际应用,它利用了队列和数组这两种基本数据结构来模拟停车管理的逻辑。 首先,我们来理解队列。队列是一种先进先出(First In First Out, FIFO)的数据...
在IT领域,FIFO(First In First Out,先进先出)...这种实现方式简单、直观,易于理解和调试,适用于对性能要求不高但需保证基础功能的场景。通过FIFO.c和FIFO.h文件,我们可以将此功能模块化,方便在不同项目中复用。
数据结构学习-Java使用数组实现简单的队列操作SimpleQueue,简单易懂,适合初学者。
以下是一个简单的C语言实现循环队列的步骤: 1. 定义静态数组:首先,你需要定义一个足够大的静态数组来存储队列元素。例如,可以声明一个大小为`MAX_SIZE`的整型数组`queue`。 ```c #define MAX_SIZE 100 int ...
顺序队列的优点是实现简单、队列元素可以随机访问,缺点是队列扩容复杂、队列元素的添加和删除效率较低。链式队列的优点是队列元素的添加和删除效率高、队列扩容简单,缺点是实现复杂、队列元素不能随机访问。 顺序...
4. **实现复杂度**:链表队列的实现通常比数组队列更复杂一些,涉及到指针的操作。 ### 三、C++中链表队列的实现 #### 1. 数据结构定义 在C++中,可以通过定义一个节点类来实现链表队列。每个节点包含数据部分和...
数组实现简单直接,但可能造成空间浪费;链表实现则更灵活,适合动态扩展。在Java中,可以使用ArrayList或LinkedList类来实现这两种方式。下面简述两种方法: - 数组实现:利用数组的索引,0号索引表示队头,最后一...
3. **易于理解与实现**:循环队列的逻辑简单,易于理解和编码。 #### 四、循环队列的关键属性与操作 - **数组**:存储队列中的元素。 - **`front`**:队列头部指针,指向队列中的第一个元素。 - **`back`**:队列...