一、基本概念
1、队列:队列是允许在一端进行插入、而在另一端进行删除的线性表。
2、队尾:允许插入的一端称为队尾,通常用一个尾指针(rear)的指针指向队尾元素,即 尾指针总是指向最后被插入的元素。
3、队头:允许删除的一端称为队头,通常用一个排头指针指向排头元素的前一个位置。
二、队列运算
1、入队运算
入队运算是指在队列的队尾加入一个新元素。操作步骤如下:
Step1:首先判断队列是否满。当队尾指针=数组的最大容量-1时,队列已满,不能进行入队运算。
Step2:然后将队尾指针进一(rear++)。
Step3:将新元素x插入到队尾指针指向的位置。
2、退队运算
退队运算是指在队列的排头位置退出一个元素并赋给指定变量。操作过程如下:
Step1:首先判断队列是否空。当排头指针等于队尾指针时,队列已空,不能进行退队运算。
Step2:然后将排头指针进一(front++)。
Step3:然后在将排头指针指向位置的后一个位置的元素赋给指定的变量。(不同数组的缺省值不一,根据具体情况而定。)
三、代码实现(Java为例)
ublic class DEMO { public static void main(String[] args) { int[]arr1 =new int[7]; int rear = -1; int front = -1;//初始化队列数组。 int []arr2 = new int[]{1,2,3,4,5,6,7,8,9};//声明一个一维数组,方便向数组队列中加入数据。 int []arr3 = new int[9]; for(int i =0;i<=arr2.length-1;i++){ if(rear!=7-1){//判断队列数组是否已满 rear++; arr1[rear]=arr2[i]; } else { System.out.println("队列已满,无法存入数据。"); } } for (int i=0;i<= arr3.length-1;i++){ if (front!=rear){ arr3[i]=arr2[front+1]; arr2[front+1]=0;//int类型数组的缺省值为0。 front++; } else { System.out.println("队列已空。"); } } } }
新手无喷