棧結構是「後進先出」,有初始化棧、入棧、出棧、返回棧頂等功能
1.初始化棧:給定乙個初始大小,建立乙個棧。
2.定義乙個變數 index,初始化為 0,用來記錄棧中的元素數量。
3.入棧:如果 index小於棧的大小,將要入棧的數放入陣列的 index位置上,index加 1。否則報錯。
4.出棧:如果 index大於 0,返回陣列( index- 1 ) 位置上的數,index減 1。否則報錯。
5.返回棧頂:如果 index大於 0,返回陣列(index- 1)位置上的數。否則報錯。
public
static
class
arraystack
arr =
newinteger
[initsize]
; index =0;
}//入棧
public
void
push
(int object)
//將object放入陣列中後,index指標加1
arr[index++
]= object;
}//出棧
public integer pop()
//將陣列index指標位置減1的棧頂元素彈出
return arr[
--index];}
}
佇列是「先進先出」,有初始化佇列、進佇列,出佇列等操作
初始化佇列:給定乙個初始大小,建立乙個佇列。
定義變數 start 和 end,初始化為 0,用來跟蹤佇列中的數。
定義變數 size,初始化為 0,用來記錄佇列中的元素數目。
進佇列:如果 size 小於佇列的大小,將要入隊的數放到陣列中 start 的位置上,start + 1;否則報錯。如果 start 等於 size,start 重新變為 0。
出佇列:如果 size 大於 0,陣列中 end 位置上的數就是出隊的數,end + 1;否則報錯,如果 end 等於 size,end 重新變為 0。
public
static
class
arrayqueue
arr =
newinteger
[initsize]
; size =0;
start =0;
end =0;
}//進佇列
public
void
push
(int object)
size++
; arr[end]
= object;
//判斷end是否在最後乙個位置
boolean flag = end == arr.length -1;
//在就end開頭,不在end+1
end = flag ?
0: end +1;
}//出佇列
public integer poll()
size--
;//需要輸出的是start位置的數值
int temp = start;
//判斷start是否在最後乙個位置
boolean flag = start == arr.length -1;
//在就start開頭,不在start+1
start = flag ?
0: start +1;
return arr[temp];}
//返回隊頭
public integer peek()
return arr[start];}
}
用陣列結構實現大小固定的佇列和棧
題目 用陣列結構實現大小固定的佇列和棧 分析 如果強行限制給出乙個長度為n的陣列,設計乙個大小為n的棧,如果超過這個大小,可以報錯。棧 先進後出 佇列 先進先出 public class array to stack queue arr new integer initsize size 0 pub...
用陣列結構實現大小固定的佇列和棧
public static class arraystack array newinteger initsize size 0 檢視棧頂元素 public integer peek return array size 1 壓棧 public void push int num array size ...
用陣列結構實現大小固定的佇列和棧
棧 用乙個變數index表示下一次壓棧應該壓到 class arraystack stack new int size public int peek return stack index public void push int i stack index i public int pop int...