顺序栈的初始化、入栈、出栈、取栈顶元素算法代码
时间: 2023-09-18 18:10:44 浏览: 143
好的,以下是顺序栈的相关算法代码:
1. 初始化顺序栈:
```c
#define MAXSIZE 100
typedef struct {
int data[MAXSIZE];
int top;
}SqStack;
void InitStack(SqStack &S) {
S.top = -1;
}
```
2. 进栈操作:
```c
#define MAXSIZE 100
typedef struct {
int data[MAXSIZE];
int top;
}SqStack;
bool Push(SqStack &S, int x) {
if(S.top == MAXSIZE-1) return false; // 栈满,无法入栈
S.data[++S.top] = x;
return true;
}
```
3. 出栈操作:
```c
#define MAXSIZE 100
typedef struct {
int data[MAXSIZE];
int top;
}SqStack;
bool Pop(SqStack &S, int &x) {
if(S.top == -1) return false; // 栈空,无法出栈
x = S.data[S.top--];
return true;
}
```
4. 获取栈顶元素:
```c
#define MAXSIZE 100
typedef struct {
int data[MAXSIZE];
int top;
}SqStack;
bool GetTop(SqStack &S, int &x) {
if(S.top == -1) return false; // 栈空
x = S.data[S.top];
return true;
}
```
以上就是顺序栈的基本算法代码,希望可以帮助到您。
阅读全文