資料結構之棧和佇列

2022-02-14 13:05:04 字數 1821 閱讀 7285

第一篇:資料結構之鍊錶

這次,我們主要看棧和佇列的相關題目。

棧是「後進先出」的資料結構,佇列是「先進先出」的資料結構,我們假設棧和佇列中儲存的都是整型數值,先來定義這兩種資料結構(都採用陣列的形式來儲存資訊,當達到陣列邊界時,對陣列進行擴容處理)。

棧主要包括push、pop和peek和count三個方法,如下:

棧的定義

1

public

class

stack 89

public

intget_count()

1213

public stack(int

capacity)

1419

20public

void push(int

value)

2130 arrvalue =temp;

31 m_capacity = m_capacity*2;

32 system.out.println("the capacity of stack is " +m_capacity);33}

34 set_count(get_count() + 1);

35 arrvalue[get_count() - 1] =value;

3637}38

39public

intpeek()

4046

return arrvalue[get_count() - 1];47}

4849

public

intpop()

5056

int result = arrvalue[get_count() - 1];

57 set_count(get_count() - 1);

58return

result;59}

60 }

佇列主要包括enqueue和dequeue兩個方法,如下:

佇列的定義

1

public

class

queue

1213

public

void enqueue(int

value)

1423 m_arrvalue =temp;

24 m_capacity = m_capacity*2;

25 system.out.println("the capacity of queue is " +m_capacity);26}

27 set_count(get_count() + 1);

28 m_arrvalue[get_count() - 1] =value;29}

3031

public

intdequeue()

3238

int result = m_arrvalue[0];

39for (int i = 1; i < get_count(); i++)

4043 set_count(get_count() - 1);

44return

result;45}

4647

private

void set_count(int

m_count)

5051

public

intget_count()

54 }

下面,我們來看和這兩種資料型別相關的題目。

資料結構之棧和佇列

棧 stack 是限定僅在表尾進行插入和刪除操作的線性表。我們把允許插入和刪除的一端稱為棧頂 top 另一端稱為棧底 bottom 不含任何資料元素的棧稱為空棧。棧又稱為後進先出 last in first out 的線性表,簡稱lifo結構。棧的插入操作,叫做進棧,也稱壓棧 入棧。類似子彈入彈夾。...

資料結構之棧和佇列

棧是乙個非常常見的資料結構,它在計算機領域中被廣泛的使用,比如作業系統會給每個執行緒分配乙個棧。用來儲存函式呼叫時各個函式的引數,返回值以及臨時變數等。棧的特點是先進後出。通常棧是乙個不考慮排序的資料結構,我們需要o n 時間才能找到棧中的最大值或者最小值,如果想要在o 1 時間內找到棧中的最大值或...

資料結構之棧和佇列

讀自 資料結構 c語言版 嚴蔚敏 吳偉民 清華大學出版社 棧 棧是限定僅在表尾進行插入或刪除操作的線性表。因此對於棧來說,表尾端有其特殊含義,稱為棧頂 top 相應地,表頭端稱為棧底 bottom 不含元素的空表稱為空棧。後進先出lifo 棧的順序儲存表示 define stack init siz...