這次,我們主要看棧和佇列的相關題目。
棧是「後進先出」的資料結構,佇列是「先進先出」的資料結構,我們假設棧和佇列中儲存的都是整型數值,先來定義這兩種資料結構(都採用陣列的形式來儲存資訊,當達到陣列邊界時,對陣列進行擴容處理)。
棧主要包括push、pop和peek和count三個方法,如下:
1佇列主要包括enqueue和dequeue兩個方法,如下: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 }
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...