棧頂指標top指向棧頂元素,初始化的時候棧為空top=-1,出棧和入棧不涉及任何迴圈所以時間複雜度為o(1)
#includeusing namespace std;
#define true 1
#define false 0
#define maxsize 20
typedef int elemtype;
typedef int status;
typedef struct sqstack
sqstack;
//初始化順序儲存結構的棧
status initstack(sqstack *s)
//獲取棧頂元素
status gettop(sqstack s,elemtype *e)
//將元素e進棧,棧頂指標top++
status push(sqstack *s,elemtype e)
//將棧頂元素e出棧,棧頂指標top--
status pop(sqstack *s,elemtype *e)
int main()
棧順序儲存 鏈式儲存
1.棧的順序儲存之動態儲存 include include define ok 1 define false 0 define true 1 define stack init size 20 儲存空間初始分配量 define stackincrement 5 儲存空間分配增量 typedef in...
棧 順序儲存結
棧是線性表的特例,棧的順序儲存其實也是線性表順序的儲存的簡化,我們簡稱為順序棧。對於這種只能一頭插入,一頭刪除的線性表來說,下標為0的一端作為棧底比較好,因為首元素都存在棧底,變化最小。我們定義乙個top變數來指示棧頂元素在陣列中的位置,這top如同中學的游標卡尺的游標,它可以來回移動,意味著棧頂的...
棧的順序儲存
棧的順序儲存就是用連續的空間儲存棧中的結點,一般都是用陣列來實現這種連續空間的。為了保證棧的filo特點,所以進棧出棧總是在棧頂一端進行。因此,不會引起類似順序表中的大量資料的移動。用陣列實現棧結構時,棧底bottom可取下標為0的陣列元素,假定用top給出棧頂元素的下標位址,即棧頂指標,那麼初始化...