用陣列結構實現大小固定的棧

2021-10-10 18:01:04 字數 1859 閱讀 3108

棧結構是「後進先出」,有初始化棧、入棧、出棧、返回棧頂等功能

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...