cpu h 棧的巨集定義 滿減棧

2021-10-05 07:21:01 字數 672 閱讀 5153

常常兩兩相對的東西,整一起後有點記不住,就寫下來。

cpu.h中有巨集定義使用哪種棧。

#define  os_stk_growth   1    

/* stack grows from high to low memory on arm */

滿棧:"滿"字表示棧是滿的,沒有空位,所以棧指標指向棧的最後乙個元素。我們入棧時要先移動sp再存資料,出棧時先取資料sp指標再移動。

空棧:"空"字表示棧是有個空位的。所以棧指標指向棧的最乙個元素後面的第乙個空位。我們入棧時直接存入資料,再移動sp。出棧時,先移動sp再取出資料。

**表示:

型別sp指標

存資料取資料

滿棧sp指向滿棧(最後乙個元素)

先移動再存放

直接取資料後移動

空棧sp指向空位(最後元素的後乙個空位)

直接存放後移動

先移動再取 型別

棧底棧指標移動方向

増棧低記憶體位址

棧指標移動方向為位址增加方向

減棧高記憶體位址

棧指標移動方向為位址減小方向

在arm中一般為滿減棧

棧的定義,順序棧,鏈式棧

棧又名堆疊,是資料暫時儲存的地方。它一種只能在頂端進行插入和刪除操作的特殊線性表,它按照先進後出的原則儲存資料,先進的資料被壓入棧底,最後的資料在棧頂,需要讀取資料的時候從棧頂開始彈出資料。棧具有記憶作用,對棧的插入和刪除操作中,不需要改變棧底指標。棧中允許進行插入和刪除操作的一端稱為棧頂 top ...

關於順序棧的初始化,進棧,出棧,棧滿,棧空的操作

本程式在vc環境下執行。順序棧比較簡單。本程式只是插入乙個資料之後直接刪除該資料。不夠完善請原諒。seqstack.h檔案。include include define maxsize 50 define false 0 define true 1 typedef structseqstack se...

3 1棧的定義

棧作為一種限定性線性表,是將線性表的插入和刪除運算限制為僅在表的一端進行。棧頂 通常將表中允許進行插入 刪除操作的一端稱為棧頂 top 因此棧頂的當前位 置是動態變化的,它由乙個稱為棧頂指標的位置指示器指示。棧底 同時表的另一端被稱為棧底 bottom 當棧中沒有元素時稱為空棧。棧的插入 操作被形象...