`
gstarwd
  • 浏览: 1525237 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

数据结构基础-队列(一)

阅读更多

import java.io.InputStreamReader;
import java.io.BufferedReader;
/**
* Class CycQueueDemo
* Description  循环队列的基本算法
* Company  opendata
* Author  Chenlly
* Date:08-12-06
* Version 1.0
*/

public class CycQueueDemo{
 private static final int MAXSIZE=10;
 private int[] intArray;
 private int nItems;//队列元素的个数
 private int rear;
 private int front;
 
 public CycQueueDemo(){
  intArray=new int[MAXSIZE];
  nItems=0;
  rear=-1;
  front=0;
 }
 
 // 队尾插入
 public void insert(int paraValue){
  if(rear==MAXSIZE-1){//已 经到了队尾
   rear=-1;
  }
  intArray[++rear]=paraValue;
  nItems++;
 }
 
 // 队头删除
 public int remove(){
  int temp=intArray[front++];
  if(front==MAXSIZE){
   front=0;
  }
  nItems--;
  return temp;
 }
 
 //查看对头元素
 public int peekFront(){
  return intArray[front];
 }
 
 //队列是否已满
 public boolean isFull(){
  return MAXSIZE==nItems;
 }
 
 //队列元素个数
 public int size(){
   return nItems;
 }
 
 //从控制台输入数据
 public int putDate(String type){
  boolean bflag=false;
  int intValue=0;
  if(type.equals("1")){
   System.out.println(" 请输入操作序列");
  }else{
   System.out.println("请入队数据");
  }
  while(!bflag){
   try{
    InputStreamReader ir=new InputStreamReader(System.in);
    BufferedReader br=new BufferedReader(ir);
    String str=br.readLine();
    intValue=Integer.parseInt(str);
    bflag=true;
   }catch(NumberFormatException ex){
    ex.printStackTrace();
    System.out.println("输入有误,请重新输 入");
   }catch (Exception ex){
    ex.printStackTrace();
   }
  }
  return  intValue;
 }
 
 //主调函数
 public static void main(String []args){
  CycQueueDemo cd=new CycQueueDemo();
  System.out.println(" 请选择");
  System.out.println("1:入列");
  System.out.println("2:出列");
  System.out.println("3: 查看队列头元素");
  System.out.println("4:查看队列是否已满");
  System.out.println("5: 查看队列元素个数");
  System.out.println("6:退出操作");
  while(true){
   int op=cd.putDate("1");
   switch(op){
    case 1:  
              int value=cd.putDate("2");
              if(cd.isFull()){
               System.out.println("队列已满,请出队列");
              }else{
               cd.insert(value);
              }
              break;
    case 2:  
         if(cd.nItems==0){
          System.out.println("队列 已空,请入队列");
         }else{
               int data=cd.remove();
               System.out.println("出队列的元素为:"+data);
              }
              break;
    case 3:  
         if(cd.nItems==0){
          System.out.println(" 队列已空,队列里已没有元素");
         }else{
               int front=cd.peekFront();
               System.out.println("队列顶元素为:"+front);
              }
              break;
    case 4:  
              if(cd.isFull()){
               System.out.println("队列已满");
              }else{
               System.out.println("队列未满");
              }
              break;
    case 5:
              if(cd.nItems!=0){
               System.out.println("队列中有"+cd.nItems+"个元素");
              }else{
               System.out.println("队列中没有元素");
              }
    case 6:
    default:  
               System.exit(0);
   }
  }
 }
 
}

分享到:
评论

相关推荐

    数据结构---队列的应用--c实现

    通过上述分析,我们可以看到队列作为一种简单而高效的数据结构,在解决农夫过河这类搜索问题时发挥了重要作用。同时,位运算的巧妙应用不仅简化了代码,也提高了程序运行效率。虽然给出的程序还有一些可以改进的地方...

    C++数据结构 -- 队列

    在编程领域,数据结构是构建高效算法的基础,而队列是一种基本且重要的数据结构。队列遵循“先进先出”(FIFO,First In First Out)原则,这意味着最先被添加到队列中的元素也将最先被处理。在C++中实现队列,我们...

    数据结构--队列的实现

    在计算机科学中,数据结构是组织、存储和处理数据的方式,而队列是一种重要的线性数据结构。队列遵循“先进先出”(First In First Out, FIFO)的原则,类似于现实生活中的排队等待服务。在这个场景中,我们关注的是...

    数据结构--队列实验报告.docx

    ### 数据结构——队列实验报告知识点总结 #### 一、队列基础知识 - **队列定义**:队列是一种特殊的线性表,只允许在一端进行插入操作,在另一端进行删除操作。允许插入的一端称为队尾(rear),允许删除的一端称为...

    严蔚敏-数据结构--链式队列c++实现

    链式队列是一种在计算机科学中广泛使用的数据结构,它以链表为基础,实现了队列“先进先出”(FIFO)的原则。在C++中实现链式队列,可以让我们更加灵活地处理数据,特别是在处理大量数据或者需要动态扩展容量的场景...

    数据结构学习-队列/栈

    ### 数据结构学习——队列与栈 ...通过以上介绍可以看出,队列和栈都是基础且重要的数据结构,在程序设计中有着不可替代的作用。理解它们的基本概念和实现方法,对于提高编程能力和解决实际问题具有重要意义。

    数据结构--链式队列

    数据结构在计算机科学中扮演着至关重要的角色,而链式队列作为一种常用的数据结构,它在处理大量数据的入队和出队操作时表现出高效性。本篇文章将深入探讨链式队列的实现,以及与之相关的编程概念和技术。 首先,...

    嵌入式常用数据结构------队列操作简介.docx

    队列是一种线性数据结构,它遵循先进先出...总结起来,队列作为一种基础数据结构,对于理解嵌入式系统的工作原理和优化系统性能具有重要意义。在实际编程中,正确地实现和使用队列操作能够有效提高系统的效率和稳定性。

    Java基础复习笔记06数据结构-队列

    Java基础复习笔记06数据结构-队列,详细介绍了队列的知识

    C语言-数据结构-栈队列实现

    本主题关注的是如何使用C语言来实现数据结构中的栈和队列,这是两种基础但非常重要的抽象数据类型(ADT)。 栈(Stack)是具有后进先出(LIFO)特性的数据结构。它类似于一个堆叠的盘子,最新的元素被放在顶部,...

    数据结构-顺序队列

    顺序队列是数据结构中的一种基本类型,它的实现方式简单直观,适用于许多基础的算法和问题。在这个项目中,我们将深入探讨顺序队列的概念、实现以及在C语言中的应用。 顺序队列是一种线性数据结构,其元素在内存中...

    计算机软件基础:12第四章数据结构栈-队列.doc

    队列(Queue)则是一种先进先出(First In First Out, FIFO)的数据结构,类似于排队等待服务的人群。新加入的元素总是在队尾,而服务完成的元素则从队头移除。队列主要的操作包括入队(Enqueue)和出队(Dequeue)...

    数据结构-队列

    队列是一种线性数据结构,遵循“先进先出”(First In First Out, FIFO)的原则,与现实生活中的排队等待类似。队列是编程中非常基础且重要的概念,广泛应用于操作系统、网络协议、任务调度等多个领域。 在VC6.0...

    《数据结构》-李春葆 实验报告 -特殊线性表算法实践-队列

    在本实验报告中,主题是关于数据结构中的特殊线性表——队列的...通过这个实验,学生可以深入理解数据结构中队列的概念,并能够实际编写和测试相关的数据结构算法,这对于后续的软件开发和算法分析有着重要的基础作用。

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

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

    java基础数据结构-队列

    ### Java基础数据结构—队列 #### 一、队列的概念与特性 队列是一种特殊类型的线性表,它的特点是先进先出(FIFO,First In First Out)。我们可以将其想象成现实生活中的排队情景,比如排队购买火车票时,最早...

    数据结构-队列介绍

    队列是数据结构中的一种,它的特点是先进先出(FIFO,First-In-First-Out)。队列的使用在程序设计中非常普遍,能够处理多种实际问题,例如在图形处理中进行广度优先搜索、实现优先队列、操作系统的工作调度等。 ...

    数据结构-队列-事件驱动编程

    数组是基础的数据结构,用于存储一组相同类型的元素。在队列实现中,数组可以用来存储待处理的事件,通过索引管理元素的入队和出队。 事件驱动编程的基本步骤包括: 1. **事件监听**:程序需要设置事件监听器,...

    c++数据结构--链队列

    在计算机科学领域,队列是一种非常重要的数据结构,其遵循先进先出(FIFO)原则。队列可以使用数组或链表来实现,本篇文章主要介绍的是利用C++语言在VS2010环境下实现链队列的方法。链队列是一种基于链表实现的队列...

Global site tag (gtag.js) - Google Analytics