資料結構 棧與佇列

2022-06-25 05:12:11 字數 2429 閱讀 6875

棧:

通俗理解:對於乙個陣列的插入和刪除來講,棧就像是乙個盒子一樣,所插入進來的資料都是先進後出,刪除的資料都是後進先出;

畫圖理解:這樣子畫應該很好理解了吧,所有的資料都像是盒子的形式一樣存貯和釋放;

直接上**:

建立乙個棧;

1

package

inn;

2/**

3* 棧4*

@author

caizhou5*

6*/78

public

class

mystack

1718

public mystack(int

maxsize)

2223

/**24

* 新增資料;

25*

@param

value

26*/

27public

void insert(long

value)

3031

/**32

* 移除資料。

33*/

34public

long

pop()

3738

/**39

* 檢視資料

40*/

4142

public

long

peek()

45/**

46* 判斷是否為空;

47*

@return

48*/

49public

boolean

isempty()

52/**

53* 判斷是否溢位;

54*

@return

55*/

56public

boolean

isfull()

59 }

測試棧:

1

package

inn;23

public

class

teststack 15}

16 }

測試結果:

60

2112

23

佇列:通俗理解:佇列,和棧基本上是完全相反的,對於陣列的插入和刪除來講,佇列就像是在電影院排隊一樣,先進先出,後進後出;

畫圖理解:符合先進先出,後進後出的理念;

直接上**:

建立佇列;

1

package

inn;

2/**

3* 佇列4*

@author

caizhou5*

6*/7public

class

myqueue

24public myqueue(int

maxsize)

3031

public

void insert (int

value)

36 element++;37}

3839

public

long

delete()

44 element--;

45return

value;46}

4748

/**49

* 從隊頭檢視資料;

50*

@return

51*/

52public

long

peek()

56return

arr[front];57}

5859

public

boolean isempty()

62public

boolean

isfull()

65 }

測試佇列:

package

inn;

public

class

testmyqueue

my.insert(10);

//while(!my.isempty())

system.out.println(my.peek());}}

測試結果:

23

23,32,13,53,10

到此,棧和佇列就講完了,希望可以幫大家理解的清楚;

資料結構 棧與佇列

題目 1.編寫函式,採用鏈式儲存實現棧的初始化 入棧 出棧操作 2.編寫函式,採用順序儲存實現棧的初始化 入棧 出棧操作 3.編寫函式,採用鏈式儲存實現佇列的初始化 入隊 出隊操作 4.編寫函式,採用順序儲存實現佇列的初始化 入隊 出隊操作 5.編寫乙個主函式,在主函式中設計乙個簡單的選單,分別除錯...

資料結構 棧與佇列

棧的原則是後進先出,即插入與刪除元素均在棧頂進行。獲取棧頂元素 s.top 佇列的原則是先進先出,即插入資料在隊尾進行,刪除資料在隊頭進行。獲取隊頭元素 q.front 思路 用兩個棧,乙個棧用來進隊,乙個棧用來出隊,當資料進入佇列的時候,我們將其壓入乙個棧,當資料出隊的時候,我們將儲存在棧內的資料...

資料結構 棧與佇列

1.順序棧 基本操作 typedef int elemtype 定義 順序棧 typedef struct sqstack 判空 bool stackempty sqstack s 進棧 bool push sqstack s elemtype x 出棧操作 bool pop sqstack s e...