JAVA基础知识(2)--队列的操作
隊(duì)列是一種線(xiàn)性表,它只允許在該表中的一端插入,在另一端刪除。
允許插入的一端叫做隊(duì)尾(rear),允許刪除的一端叫做隊(duì)頭(front);
下面用Java的數(shù)組進(jìn)行模擬隊(duì)列的操作:
/**2015-07-26?18:49:08
*用數(shù)組元素來(lái)演示隊(duì)列的內(nèi)部操作
*@author lihaiming
*Email:912547587@qq.com
*/
import java.util.Scanner;
public class Queue {
//屬性變量
private int[] a;
private int head=0,tail=0;
/**
* 無(wú)參構(gòu)造方法
* 默認(rèn)數(shù)組長(zhǎng)度為4;
*/
public Queue(){
a = new int[4];
}
/**
* 有參構(gòu)造方法
* @param m 數(shù)組的長(zhǎng)度
*/
public Queue(int m){
a = new int[m];
}
/**
* 把元素放到隊(duì)列的方法
* @param i 元素值
*/
public void push(int i){
a[++tail]=i;
}
/**
* 從隊(duì)列取出元素方法
*/
public void pop(){
head++;
}
/**
* 將隊(duì)列元素依次輸出方法
*/
public void display(){
for(int i=head+1;i<=tail;i++){
System.out.println(a[i]);
}
}
/**
* 返回隊(duì)列的元素個(gè)數(shù)
* @return
*/
public int Size(){
return tail-head;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.println("請(qǐng)輸入數(shù)組的長(zhǎng)度:");
int m = input.nextInt();
Queue q = new Queue(m);
System.out.println("請(qǐng)依次輸入隊(duì)列的元素:");
System.out.println("請(qǐng)按-1結(jié)束");
int c;
while((c=input.nextInt())!=-1){
q.push(c);
}
System.out.println("依次進(jìn)入隊(duì)列的順序:");
q.display();
System.out.print("隊(duì)列里有:");
System.out.println(q.Size()+"個(gè)元素");
System.out.println("依次取出的順序:");
while(q.head != q.tail){
System.out.println(q.a[q.head+1]);
q.head++;
}
}
}
程序結(jié)果:
請(qǐng)輸入數(shù)組的長(zhǎng)度:
6
請(qǐng)依次輸入隊(duì)列的元素:
請(qǐng)按-1結(jié)束
1
4
3
6
-1
依次進(jìn)入隊(duì)列的順序:
1
4
3
6
隊(duì)列里有:4個(gè)元素
依次取出的順序:
1
4
3
6
首先確定一個(gè)數(shù)組的長(zhǎng)度,這里我先確定一個(gè)長(zhǎng)度6,依次添加數(shù)值1、4、3、6;
-1輸入結(jié)束符號(hào)
取出的數(shù)值順序是依然是1、4、3、6
隊(duì)列是先進(jìn)先出;
轉(zhuǎn)載于:https://www.cnblogs.com/lihaiming93/p/4678449.html
總結(jié)
以上是生活随笔為你收集整理的JAVA基础知识(2)--队列的操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: unity3d 数学的数学基础和辅助类
- 下一篇: MYSQL GROUP BY 对多个字段