`
tw5566
  • 浏览: 455364 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

算法学习(五)---队列

阅读更多
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());   
    } 

}

 

分享到:
评论

相关推荐

    算法-理论基础- 队列- 循环队列(包含源程序).rar

    通过阅读《算法-理论基础- 队列- 循环队列(包含源程序).pdf》这份文档,你可以深入理解循环队列的原理,并通过源代码实践加深对这一数据结构的掌握。这份文档可能会涵盖循环队列的理论介绍、示例演示以及完整的C/...

    c++算法集-排序-链表-图-队列-二叉树实现

    "c++算法集-排序-链表-图-队列-二叉树实现"这个压缩包包含了C++语言实现的一些核心数据结构和算法,这些都是计算机科学的基础。 首先,我们来详细探讨排序算法。排序是计算机科学中最基本的操作之一,它涉及将一组...

    算法-数据结构和算法-5-队列和双端队列.rar

    在计算机科学领域,数据结构和算法是至关重要的...通过阅读“数据结构和算法-5-队列和双端队列.pdf”这份文档,你可以深入学习它们的实现细节、操作方法以及在实际问题中的应用,从而在编程实践中更好地运用这些工具。

    算法-数据结构和算法-4-栈和队列.rar

    在计算机科学中,数据结构和算法是至关重要的组成部分,它们是构建高效软件和解决复杂问题的基础。...因此,深入学习“算法-数据结构和算法-4-栈和队列.rar”中的内容,将对提升编程技能大有裨益。

    数据结构实验报告2-栈与队列-队列基本操作算法-实验内容及要求.docx

    本次实验是关于数据结构中的队列基本操作算法。队列是一种先进先出(FIFO)的数据结构,在计算机科学中有着广泛的应用,例如进程调度、任务队列等场景。通过本实验,学生能够深入理解循环队列的概念,并熟练掌握其...

    Acm常用算法学习模板-1

    文件包括以下子文件,每个文件里面包括了一定数量的ppt,doc,c++模板代码,希望对算法的入门的学习者有用。(注:其中多数文件是download它人的,本人只是将其整理) 00-经典错误 0-广度优先搜索 0-深度优先搜索 1-...

    数据结构,算法与应用 ---C++语言描述(代码与习题答案)

    总之,《数据结构,算法与应用 ---C++语言描述(代码与习题答案)》是一本全面且实用的学习资料,涵盖了从基础到高级的数据结构和算法知识,结合C++的实现,对于提升编程能力、解决实际问题具有极大价值。通过深入...

    基础算法----线性表和栈,队列

    线性表和栈、队列是计算机科学中最基础的数据结构,它们在算法设计和实现中起着至关重要的作用。线性表是一种简单的数据组织形式,它由若干个相同类型元素构成的有限序列,可以顺序存储或链式存储。栈和队列则是...

    数据结构学习--队列及其应用

    数据结构学习--队列及其应用 队列是一种重要的数据结构,它广泛应用于计算机科学和信息技术领域。...通过学习队列算法的编写,我们可以更好地理解队列的定义、逻辑结构、存储结构和基本运算等知识点。

    数据结构与算法基础--第05周03--3.1栈和队列的定义和特点1--3.1.2队列的定义和特点.pdf

    在计算机科学中,数据结构是组织和管理大量数据的关键元素,而栈和队列是两种基本的数据...理解并熟练运用队列对于编写高效的算法和程序至关重要。在后续的学习中,我们将进一步探讨队列的特性和其在不同场景下的应用。

    数据结构算法集---C++语言实现

    数据结构是计算机科学中的核心概念,它涉及到组织、存储和检索数据的方式。在这个“数据结构算法集---C++语言实现”中,...通过理解和实现这些基本数据结构,可以为进一步学习高级算法和复杂数据结构打下坚实的基础。

    数据结构与算法分析-------

    - **结构化章节安排**:全书分为六个部分,涵盖数据结构和算法的基本概念到高级主题,每个部分都精心设计以引导读者逐步深入学习。 #### 各部分知识点概述 1. **第1部分:概述** - **章节1:概述**(第11页):...

    数据结构与算法-----PPT版本

    数据结构与算法是计算机科学的基础,对于任何编程学习者来说,理解和掌握它们至关重要。这个“数据结构与算法-----PPT版本”很可能包含了徐旭松教授或专家精心制作的一系列教学材料,旨在帮助学习者深入理解这些核心...

    实用算法基础教程--算法和数据结构

    综上所述,《实用算法基础教程——算法和数据结构》这本书内容丰富、覆盖全面,从算法的基础概念到高级技巧,再到具体的数据结构及其应用,为读者提供了一个系统的、全面的学习资源。无论是对于刚接触算法和数据结构...

    数据结构算法集---C++语言实现.rar_queue stack_堆栈 栈_数据结构 队列_链表_队列

    总的来说,这个C++数据结构算法集提供了对基本数据结构和算法的实现,包括堆栈、队列和链表,这对于学习和理解数据结构及其在实际编程中的应用非常有帮助。掌握这些基础知识将有助于提升编程能力,解决更复杂的问题...

    hello-algo-数据结构与算法-zh-csharp.pdf

    "数据结构与算法学习指南" 本书《Hello 算法》是为了帮助读者学习数据结构与算法而编写的,作者靳宇栋(Krahets)认为刷题虽然是学习算法的一种方法,但对于基础不足的同学来说,可能会感到困扰和挫折。因此,本书...

    数据结构与排序算法------通过代码示例,讲解:数据结构和9种排序算法。.zip

    逻辑结构:描述数据元素之间的逻辑关系,如线性结构(如数组、链表)、树形结构(如二叉树、堆、B树...学习算法与数据结构不仅有助于理解程序的内部工作原理,更能帮助开发人员编写出高效、稳定和易于维护的软件系统。

    数据结构,算法与应用 ---C++语言描述代码 (包括习题)

    这本书"数据结构,算法与应用 ---C++语言描述代码"深入探讨了这些主题,并附带了习题和解答,旨在帮助学习者通过实践来深化理解。 1. **数据结构**:数据结构是组织和管理数据的方式,包括数组、链表、栈、队列、树...

Global site tag (gtag.js) - Google Analytics