棧(stack):限定僅在表尾進行插入或刪除操作的線性表。表尾稱為棧頂(top),表頭稱為棧底(bottom)。
棧的特點:先進後出。
順序棧:使用一組位址連續的儲存單元依次存放自棧底到棧頂的資料元素。
順序棧需要犧牲乙個位址空間來存放top指標,即棧頂指標在棧頂元素的下乙個位置上。
棧空的判定條件:sqstack.base=sqstack.top
棧不存在的判定條件:sqstack.base=null
#include #include #include #define stack_init_size 100
#define stack_increment 10
typedef int selemtype;
typedef bool status;
using namespace std;
typedef struct
sqstack;
///建立stack
status createsqstack_s(sqstack &s)
///壓棧
status pushsqstack_s(sqstack &s,selemtype e)
*s.top++=e;
return true;
}///出棧
void popsqstack_s(sqstack &s,selemtype &e)
}///get棧頂元素
void gettopsqstack_s(sqstack s,selemtype &e)
}///將棧清空
void clearsqstack_s(sqstack &s)
///銷毀棧
void deletesqstack_s(sqstack &s)
free(s.base);
s.base=null;
s.top=null;
s.stacksize=0;
}int main()
參考:《資料結構c語言版》(嚴蔚敏)
順序棧的簡單實現
資料結構中順序棧的簡單實現和簡單操作的測試。順序棧的簡單實現 include define elemtype char define maxsize 50 using namespace std 結構定義 typedef struct sqstack 初始化 void initstack sqsta...
棧的簡單實現(順序棧 鏈棧)
include define maxsize 100 define true 1 define false 0 define ok 1 define error 0 define infeasible 1 define overflow 2 using namespace std typedef i...
棧的簡單總結(順序棧)
棧結構的特點 棧是線性表結構的一種,但是棧結構的插入與刪除操作都只能從同一端進行,所以棧結構是一種受限制的線性表結構,資料的插入與刪除符合lifo的原則 也就是後進先出,先進後出 棧的結構 對棧進行插入與刪除操作的一端稱為棧頂 top 另一端則稱為棧底 base 棧的進本操作 棧的基本操作有向棧中壓...