zl程序教程

您现在的位置是:首页 >  Java

当前栏目

数据结构——队列

2023-02-18 16:27:08 时间

定义

队列(Queue)。队列简称队。是一种操作受限的线性表,只允许在表的一端进行插入,而在表的另一端进行删除。向队列中插入元素称为入队或进队;删除元素称为出队或离队。其操作特性为先进先出(First In First Out,FIFO),并且只允许在队尾进,队头出

特性:先进先出

队列中的名词

  • 队头(Front):允许删除的一端,又称队首。
  • 队尾(Rear):允许插入的一端。
  • 空队列:不包含任何元素的空表。
  • 入队,若队列Q未满,将x加入,使之成为新的队尾
  • 出队,若队列Q非空,删除队头元素,并用x返回。

队列的实现

数组

package Main;

/**
* 1.使用数组实现队列功能,使用int数组保存数据特点:先进先出,后进后出
*/

public class QueueTest1 {  
    public static void main(String[] args){  

        //测试队列
        System.out.println("测试队列:");
        Queue queue = new Queue();  
        queue.in(1);  
        queue.in(2);  
        queue.in(3);  
        System.out.println(queue.out()); 
        System.out.println(queue.out()); 
        queue.in(4);  
        System.out.println(queue.out());  
        System.out.println(queue.out());  
        queue.in(5);  
        System.out.println(queue.out()); 

    }  
}  

//使用数组定义一个队列
class Queue {  

    int[] a = new int[5];  
    int i = 1; //数组下标

    //入队
    public void in(int m){  
       a[i++] = m;
    } 

    //出队
    public int out(){  
       int index = 0;  
       int temp = a[1];  
       for(int j=1;j<i;j++){  
         a[j-1] = a[j];  
         index++;  
       }  
       i = index;  
       return temp;  
    }  
} 

问题

那么经过昨天的栈和今天的队列,你能否用俩个栈来实现一个队列?