栈的顺序存储结构及实现(初始化、进栈、出栈、取栈顶元 代码
时间: 2024-04-30 09:16:38 浏览: 167
栈是一种常见的数据结构,它采用后进先出(LIFO)的原则。栈的顺序存储结构可以使用数组来实现。
以下是栈的顺序存储结构的实现代码:
1. 初始化栈:
```cpp
#define MAX_SIZE 100 // 栈的最大容量
typedef struct {
int data[MAX_SIZE]; // 存储栈元素的数组
int top; // 栈顶指针,指向栈顶元素的下一个位置
} Stack;
void initStack(Stack *s) {
s->top = 0; // 初始化栈顶指针为0,表示栈为空
}
```
2. 进栈(压栈)操作:
```cpp
int push(Stack *s, int value) {
if (s->top == MAX_SIZE) {
return 0; // 栈已满,无法进栈
}
s->data[s->top++] = value; // 将元素压入栈顶,并将栈顶指针加1
return 1; // 进栈成功
}
```
3. 出栈操作:
```cpp
int pop(Stack *s, int *value) {
if (s->top == 0) {
return 0; // 栈为空,无法出栈
}
*value = s->data[--s->top]; // 将栈顶元素弹出,并将栈顶指针减1
return 1; // 出栈成功
}
```
4. 取栈顶元素操作:
```cpp
int getTop(Stack *s, int *value) {
if (s->top == 0) {
return 0; // 栈为空,无栈顶元素
}
*value = s->data[s->top - 1]; // 将栈顶元素赋值给value
return 1; // 获取栈顶元素成功
}
```
阅读全文