#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,表示棧中無元素,而後每壓入乙個新的元素,...