1、概述 隊列:一種只容許在一端進行插入,在另外一端進行刪除的線性表結構。運行插入的一端叫隊尾,容許刪除的一端叫隊頭。 2、順序存儲結構的隊列基本操做以及算法實現 基本操做:入隊、出對、隊列裏的元素數量、置空隊列、判斷是否爲空、讀取隊列頭部首元素等。 算法
//數組實現"隊列",只能存儲int數據
public class Array {
private int[] array;
private int count;
private Array(int size){
array = new int[size];
count = 0;
}
// 將t添加到隊列的末尾
public void add(int t){
array[count++] = t;
}
// 返回"隊列開頭元素"
public int front(){
return array[0];
}
// 返回"棧頂元素值",並刪除"棧頂元素"
public int pop(){
int ret = array[0];
count--;
for (int i =1; i <=count; i++) {
array[i-1] = array[i];
}
return ret;
}
// 返回"棧"的大小
public int size() {
return count;
}
// 返回"棧"是否爲空
public boolean isEmpty() {
return size()==0;
}
public static void main(String[] args) {
int string= 30;
Array stack = new Array(12);
// 將10, 20, 30 依次推入棧中
stack.add(10);
stack.add(20);
stack.add(30);
// 將"棧頂元素"賦值給string,並刪除"棧頂元素"
string = stack.pop();
System.out.printf("string=%d\n",string);
// 只將"棧頂"賦值給string,不刪除該元素.
string = stack.front();
System.out.printf("string=%d\n",string);
stack.add(10);
System.out.printf("isEmpty()=%b\n", stack.isEmpty());
System.out.printf("size()=%d\n", stack.size());
while (!stack.isEmpty()) {
System.out.printf("size()=%d\n", stack.pop());
}
}
}
複製代碼