package com.tw.dst.sq;
/**
* <p>队列是一种先进先出(FIFO)的线性数据结构,常用操作有插入(insert)和删除(remove)</p>
* @author tangw 2010-11-27
*/
public class Queue {
// 队列数组
private long queueArr[];
//队列的前端下标
private int front;
//队列的尾端下标
private int rear;
//队列的大小
private int maxSize;
//队列中元素的个数
private int nItems;
//初始化一个大小为size的队列
public Queue(int size){
queueArr = new long[size];
maxSize = size;
front = 0;
rear = -1;
nItems = 0;
}
//插入操作
public void insert(long value){
//队列已满
if(rear == maxSize-1)
rear = -1;
queueArr[++rear] = value;
nItems++;
}
//删除操作
public long remove(){
long temp = queueArr[front++];
if(front == maxSize)
front = 0;
nItems--;
return temp;
}
//返回队列第一个元素
public long peakFront(){
return queueArr[front];
}
//判断是否为空
public boolean isEmpty(){
return nItems == 0;
}
//判断是否已满
public boolean isFull(){
return nItems == maxSize;
}
//返回队列中元素的个数
public int size(){
return nItems;
}
public void print(){
for(int i = front;i < front+nItems;i++){
System.out.print(queueArr[i]+" ");
}
System.out.println();
}
public static void main(String[] args) {
Queue q = new Queue(10);
while(!q.isFull()){
long value = (long)(Math.random()*100);
q.insert(value);
}
q.print();
while(!q.isEmpty()){
q.remove();
q.print();
}
q.print();
System.out.println(q.isEmpty());
}
}
分享到:
相关推荐
通过阅读《算法-理论基础- 队列- 循环队列(包含源程序).pdf》这份文档,你可以深入理解循环队列的原理,并通过源代码实践加深对这一数据结构的掌握。这份文档可能会涵盖循环队列的理论介绍、示例演示以及完整的C/...
"c++算法集-排序-链表-图-队列-二叉树实现"这个压缩包包含了C++语言实现的一些核心数据结构和算法,这些都是计算机科学的基础。 首先,我们来详细探讨排序算法。排序是计算机科学中最基本的操作之一,它涉及将一组...
在计算机科学领域,数据结构和算法是至关重要的...通过阅读“数据结构和算法-5-队列和双端队列.pdf”这份文档,你可以深入学习它们的实现细节、操作方法以及在实际问题中的应用,从而在编程实践中更好地运用这些工具。
本次实验是关于数据结构中的队列基本操作算法。队列是一种先进先出(FIFO)的数据结构,在计算机科学中有着广泛的应用,例如进程调度、任务队列等场景。通过本实验,学生能够深入理解循环队列的概念,并熟练掌握其...
在计算机科学中,数据结构和算法是至关重要的组成部分,它们是构建高效软件和解决复杂问题的基础。...因此,深入学习“算法-数据结构和算法-4-栈和队列.rar”中的内容,将对提升编程技能大有裨益。
文件包括以下子文件,每个文件里面包括了一定数量的ppt,doc,c++模板代码,希望对算法的入门的学习者有用。(注:其中多数文件是download它人的,本人只是将其整理) 00-经典错误 0-广度优先搜索 0-深度优先搜索 1-...
数据结构是计算机科学中的核心概念,它涉及到如何在内存中有效地组织和管理数据,以便进行高效的操作。...在学习过程中,读者可以结合这些实例来掌握数据结构和算法的精髓,为成为优秀的软件开发者打下坚实的基础。
总之,《数据结构,算法与应用 ---C++语言描述(代码与习题答案)》是一本全面且实用的学习资料,涵盖了从基础到高级的数据结构和算法知识,结合C++的实现,对于提升编程能力、解决实际问题具有极大价值。通过深入...
线性表和栈、队列是计算机科学中最基础的数据结构,它们在算法设计和实现中起着至关重要的作用。线性表是一种简单的数据组织形式,它由若干个相同类型元素构成的有限序列,可以顺序存储或链式存储。栈和队列则是...
数据结构学习--队列及其应用 队列是一种重要的数据结构,它广泛应用于计算机科学和信息技术领域。...通过学习队列算法的编写,我们可以更好地理解队列的定义、逻辑结构、存储结构和基本运算等知识点。
在计算机科学中,数据结构是组织和管理大量数据的关键元素,而栈和队列是两种基本的数据...理解并熟练运用队列对于编写高效的算法和程序至关重要。在后续的学习中,我们将进一步探讨队列的特性和其在不同场景下的应用。
数据结构是计算机科学中的核心概念,它涉及到组织、存储和检索数据的方式。在这个“数据结构算法集---C++语言实现”中,...通过理解和实现这些基本数据结构,可以为进一步学习高级算法和复杂数据结构打下坚实的基础。
- **结构化章节安排**:全书分为六个部分,涵盖数据结构和算法的基本概念到高级主题,每个部分都精心设计以引导读者逐步深入学习。 #### 各部分知识点概述 1. **第1部分:概述** - **章节1:概述**(第11页):...
数据结构与算法是计算机科学的基础,对于任何编程学习者来说,理解和掌握它们至关重要。这个“数据结构与算法-----PPT版本”很可能包含了徐旭松教授或专家精心制作的一系列教学材料,旨在帮助学习者深入理解这些核心...
综上所述,《实用算法基础教程——算法和数据结构》这本书内容丰富、覆盖全面,从算法的基础概念到高级技巧,再到具体的数据结构及其应用,为读者提供了一个系统的、全面的学习资源。无论是对于刚接触算法和数据结构...
总的来说,这个C++数据结构算法集提供了对基本数据结构和算法的实现,包括堆栈、队列和链表,这对于学习和理解数据结构及其在实际编程中的应用非常有帮助。掌握这些基础知识将有助于提升编程能力,解决更复杂的问题...
《数据结构与算法分析---C语言描述》这本书详细的介绍了算法的基本原理和实现方法,书中使用伪代码的形式阐述了...对于初学者而言,通过学习这些知识点可以加深对算法原理的理解,并为将来的编程实践打下坚实的基础。
"数据结构与算法学习指南" 本书《Hello 算法》是为了帮助读者学习数据结构与算法而编写的,作者靳宇栋(Krahets)认为刷题虽然是学习算法的一种方法,但对于基础不足的同学来说,可能会感到困扰和挫折。因此,本书...