Java 常见例子

队列是一种线性动态数据结构,遵循先进先出(FIFO)原则。在队列中,添加新元素和删除元素发生在不同的一端,这意味着首先添加到队列中的元素将最先从队列中删除。

特点队列

  • 它是一个动态数据结构。
  • 它具有动态大小。
  • 它使用动态内存分配。

队列的操作

  • isEmpty():检查队列是否为空。
  • size( ): 返回队列的大小。
  • frontElement(): 返回队列的前端元素。它是下一个要出队的元素。
  • rearElement():返回队列的后部元素。它是下一个元素将被排入队列的元素。
  • EnQueue(x):从队列的后侧添加一个新元素"x"。因此,队列的大小增加 1。
    Java 队列
  • DeQueue():删除队列的前端元素。因此,队列的大小减少 1。
    Java 队列

队列的实现

class CreateQueue {
  static final int MAX = 100;
  int front;
  int rear;
  //分配队列的最大大小
  int queue[] = new int[MAX];

  CreateQueue() {
    front = -1;
    rear = -1;
  }

  //创建一个方法来检查是否
  //队列是否为空
  void isEmpty() {
    if(rear == front) {
      System.out.println("Queue is empty.");
    } else {
      System.out.println("Queue is not empty.");
    }
  }

  //创建一个方法来返回队列的大小
  int size() {
    return (rear - front);
  } 

  //创建添加新元素的方法
  void EnQueue(int x){
    if(rear == (MAX - 1)){
      System.out.println("Queue size limit reached.");
    } else {
      queue[++rear] = x;
      System.out.println(x + " is added into the queue.");
    }
  }

  //创建删除前面元素的方法
  void DeQueue(){
    if(rear == front){
      System.out.println("Queue is empty.");
    } else {
      int x = queue[++front];
      System.out.println(x + " is deleted from the queue.");
    }
  }  

  //创建一个方法来获取前面的元素
  int frontElement() {
    if(rear == front) {
      System.out.println("Queue is empty.");
      return 0;
    } else {
      return queue[front+1];
    }
  }

  //创建获取后元素的方法
  int rearElement() {
    if(rear == front) {
      System.out.println("Queue is empty.");
      return 0;
    } else {
      return queue[rear];
    }
  }
}

//测试代码
public class MyClass {
  public static void main(String[] args) {
    CreateQueue MyQueue = new CreateQueue();
    MyQueue.EnQueue(10);
    MyQueue.EnQueue(20);
    MyQueue.EnQueue(30);
    MyQueue.EnQueue(40);

    MyQueue.DeQueue();
    MyQueue.isEmpty(); 
  }
} 

上面的代码将给出以下输出:

10 is added into the queue.
20 is added into the queue.
30 is added into the queue.
40 is added into the queue.
10 is deleted from the queue.
Queue is not empty.