資料結構與演算法-5 棧
棧
只允許在一端進行插入或刪除的線性表
棧頂:允許插入的一端
棧低:不允許
特點:後進先出 Last In First Out
初始化
void InitStack(SqStack &S){
S.top = -1; //初始化棧頂指標,0的位置還沒有資料
}
入棧
bool Push(SqStack &5, ElemType x){
if(S.top == MaxSize-1)
return false; //棧滿,報錯
// S.top = S.top + 1; //指標加一
// S.data[S.top] = x; //新元素入棧
S.data[++S.top] = x;
return ture;
}
出棧
bool Pop(SqStack &S, ElemType &x){
if (S.top == -1) //棧空,報錯
return false;
// x = S.data[S.top]; //棧頂元素先出棧
// S.top = S.top - 1; //指標再減一
x = S.data[S.top--];
return true;
}
共享棧
typedef struct{
ElemType data[MaxSize];
int top0;
int top1;
}ShStack;
void InitStack(ShStack &S){
S.top0 = -1;
S.top1 = MaxSize;
}
棧滿:top0+1 = top1
相關文章
- 資料結構與演算法-資料結構(棧)資料結構演算法
- [資料結構與演算法] 邂逅棧資料結構演算法
- 資料結構與演算法分析——棧資料結構演算法
- javascript資料結構與演算法-棧JavaScript資料結構演算法
- 資料結構與演算法-棧與佇列資料結構演算法佇列
- python演算法與資料結構-棧(43)Python演算法資料結構
- 資料結構與演算法——棧(一)【棧的快速入門】資料結構演算法
- js資料結構與演算法 陣列、棧部分JS資料結構演算法陣列
- 《資料結構與演算法》——表、棧和佇列資料結構演算法佇列
- 演算法與資料結構-棧(Stack)-Java實現演算法資料結構Java
- 01Javascript資料結構與演算法 之 棧JavaScript資料結構演算法
- 資料結構與演算法(二)佇列、棧、連結串列資料結構演算法佇列
- 資料結構和演算法總結--棧資料結構演算法
- 資料結構-棧與佇列資料結構佇列
- 『資料結構與演算法』棧:詳解與程式碼實現資料結構演算法
- 資料結構與演算法分析學習筆記(四) 棧資料結構演算法筆記
- C#資料結構與演算法系列(八):棧(Stack)C#資料結構演算法
- 《JavaScript資料結構與演算法》筆記——第3章 棧JavaScript資料結構演算法筆記
- 資料結構與演算法 | 棧的實現及應用資料結構演算法
- 棧 ADT 【資料結構與演算法分析 c 語言描述】資料結構演算法
- 用Python解決資料結構與演算法問題(三):線性資料結構之棧Python資料結構演算法
- 資料結構 - 棧資料結構
- 資料結構-棧資料結構
- python資料結構與演算法——棧、佇列與雙端佇列Python資料結構演算法佇列
- 前端學習 資料結構與演算法 快速入門 系列 —— 棧前端資料結構演算法
- Python資料結構與演算法系列四:棧和佇列Python資料結構演算法佇列
- 資料結構與演算法--簡單棧實現及其應用資料結構演算法
- 從零開始學資料結構和演算法(三)棧與棧的應用資料結構演算法
- 資料結構和演算法-切片實現棧資料結構演算法
- JavaScript 的資料結構和演算法 - 棧篇JavaScript資料結構演算法
- 結構與演算法(02):佇列和棧結構演算法佇列
- 資料結構與演算法資料結構演算法
- 資料結構:初識(資料結構、演算法與演算法分析)資料結構演算法
- 資料結構(1):棧資料結構
- 資料結構之——棧資料結構
- javascript資料結構 -- 棧JavaScript資料結構
- 資料結構之「棧」資料結構
- 資料結構之棧資料結構