栈的六项基本操作c语言代码
时间: 2024-08-12 22:10:43 浏览: 26
在C语言中,栈是一种线性数据结构,常用于局部变量的存储和函数调用的管理。栈的六项基本操作包括:
1. 初始化/创建栈:在C语言中,我们通常使用数组或动态内存分配来实现栈。创建栈后,可以通过`top`指针跟踪栈顶元素。
```c
typedef struct Stack {
int* arr; // 数组或动态分配的数据
int top; // 栈顶元素的索引
int size; // 栈的最大容量
} Stack;
```
2. 判断栈是否为空(IS_EMPTY):
```c
int is_empty(Stack* s) {
return s->top == 0;
}
```
3. 栈顶元素的获取(POP):
```c
int pop(Stack* s) {
if (is_empty(s)) {
return -1; // 或者抛出错误
}
int item = s->arr[s->top];
s->top--;
return item;
}
```
4. 入栈元素(PUSH):
```c
void push(Stack* s, int value) {
if (s->top == s->size - 1) {
// 扩容处理
s->size *= 2;
s->arr = (int*)realloc(s->arr, s->size * sizeof(int));
}
s->arr[s->top++] = value;
}
```
5. 检查栈是否已满(IS_FULL):
```c
int is_full(Stack* s) {
return s->top == s->size;
}
```
6. 获取栈的当前大小(GET_SIZE):
```c
int get_size(Stack* s) {
return s->top;
}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)