c語言順序棧的表示和實現

2021-08-01 08:38:11 字數 737 閱讀 1671

#define stack_init_size 100//初始大小(100個資料長度)

#define stackincrement 10//棧的分配增量

typedef int elemtype;//棧儲存的資料型別

typedef enum status;//列舉返回函式執行結果

typedef struct sqstack;

status initstack(sqstack &s)

s.top = s.base;

s.stacksize = stack_init_size;//當前棧可儲存的資料的最大長度為初始分配長度

return ok;

}status gettop(sqstack s, elemtype &e)

e = *(s.top - 1);//top指標指向的記憶體的前乙個為棧頂

return ok;

}status push(sqstack &s, elemtype e)

s.top = s.base + s.stacksize;//沒啥用?

s.stacksize += stackincrement;

} *(s.top++) = e;

return ok;

}status pop(sqstack &s, elemtype &e)

e = *(--s.top);

return ok;

}

順序棧 棧的順序表示和實現

用順序表表示的棧的基本操作 include include define selemtype int define status int define stack init size 100 初始空間分配量 define stackincrement 10 儲存空間分配增量 using namesp...

棧的順序表示和實現

棧是僅限定在表位進行插入和刪除的線性表。因此,對棧來說,表尾端有其特殊含義,稱為棧頂,相應的表頭端稱為棧底。不含元素的空表稱為空棧。假設棧s a1,a2,an 則稱a1為棧底元素,an為棧頂元素。棧中元素按啊a1,a2,an的次序進棧,退棧的第乙個元素應是棧頂元素。換句話說,棧的修改是按後進先出的原...

順序棧的表示與實現

說明 想要使用順序表實現棧,結構體中應包含棧頂和棧底的指標,同時需要指定棧的儲存單元大小 動態可變 其中棧底指標base用來動態分配棧的記憶體空間,棧頂指標top用來指定棧頂元素在順序棧中的位置。初始化時top bas etop base top ba se,表示棧中無元素,而後每壓入乙個新的元素,...