棧(LIFO)的儲存

2021-09-29 08:51:58 字數 870 閱讀 3173

:後進先出。(lifo結構)

棧是限定僅在表尾進行插入和刪除操作的線性表。允許插入和刪除的一端稱為棧頂(top),另一端稱為棧底(bottom),不含任何資料元素的棧稱為空棧。

功能:用於瀏覽器的後退操作,以及word等軟體的撤銷操作。

兩棧共享空間,用乙個陣列來儲存兩個棧。

/*兩棧共享空間結構*/

typedef

struct

sqdoublestack;

對於兩棧共享空間的push方法,除了要插入元素值引數外,還需要有乙個判斷是棧1還是棧2的棧號引數 stacknumber:

/*插入元素e為新的棧頂元素*/

status push

(sqdoublestack *s,selemtype e,

int stacknumber)

因為在開始已經判斷了是否有棧滿的情況,所以後面的top1+1或top2-1是不擔心溢位問題的。對於兩棧共享空間的pop方法,引數就只是判斷棧1 棧2的引數stacknumber:

/*若棧不空,則刪除s的棧頂元素,用e返回其值,並返回ok;否則返回error*/

status pop

(sqdoublestack *s,selemtype *e,

int stacknumber)

else

if(stacknumber==2)

return ok;

}

棧方法 LIFO 隊方法 FIFO

1 棧方法 lifo last in first out,後進先出 最新新增最早被移除。棧中項的插入 叫做推入 和移除 叫做彈出 只發生在乙個位置 桟的頂部。模擬 push 方式可以接收任意數量引數,它逐個新增到陣列末尾,並修改陣列長度。pop 方法從陣列末端最後一項,並減少length var c...

實現資料結構中的棧 後進先出LIFO

棧是什麼?如果用生活中最常見的例子,我想到是書本的放置 當然這是部分人喜歡的做法 但是給人的感覺是非常直接的,書本整齊跨一疊在一起,放在最上面的那本最先拿走,放在最底下那本書就最後拿走,形象吧,生活中有很多後進先出的栗子,就不一一說明了,用圖來說明應該很好理解。放在最上面的那本書的位置叫棧頂,棧頂是...

棧的鏈結儲存 鏈棧

通常鏈棧用單鏈表表示,因此其結點結構與單鏈表的結點結構相同。因為只能在棧頂 執行插入和刪除操作,顯然以單鏈表的頭部做棧底是最方面的,而且沒有必要像單鏈表那樣為了運算方便附加乙個頭結點。includeusing namespace std define null 0 struct node class...