C 语言:用数组实现顺序栈,轻松取出栈顶元素!
在 C 语言中,假设我们使用数组来实现顺序栈,以下是取出栈顶元素的示例代码: ```c #include <stdio.h> #define MAX_SIZE 100 typedef struct { int data[MAX_SIZE]; int top; } Stack; // 初始化栈 void initStack(Stack *s) { s->top = -1; } // 判断栈是否为空 int isEmpty(Stack *s) { return s->top == -1; } // 判断栈是否已满 int isFull(Stack *s) { return s->top == MAX_SIZE - 1; } // 入栈操作 void push(Stack *s, int element) { if (!isFull(s)) { s->data[++s->top] = element; } else { printf("Stack Overflow!\n"); } } // 出栈操作 int pop(Stack *s) { if (!isEmpty(s)) { return s->data[s->top--]; } else { printf("Stack Underflow!\n"); return -1; } } // 取出栈顶元素但不出栈 int peek(Stack *s) { if (!isEmpty(s)) { return s->data[s->top]; } else { printf("Stack is empty!\n"); return -1; } } int main() { Stack s; initStack(&s); push(&s, 10); push(&s, 20); push(&s, 30); int topElement = peek(&s); if (topElement!= -1) { printf("Top element: %d\n", topElement); } return 0; } ``` 在上述代码中,`peek`函数用于取出栈顶元素但不将其出栈。如果栈为空,会输出相应的提示信息并返回 `-1` 。 ######[AI写代码神器 | 466点数解答 | 2024-11-07 10:49:31]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)382
- 用 Pandas 玩转世界幸福数据:分组、取数与一致性判断(字节豆包 | 245点数解答 | 2024-11-05 15:18:20)179
- Pandas 数据框操作:从创建到筛选排序全解析!(阿里通义 | 317点数解答 | 2025-04-14 18:32:16)245
- 重新定义字母大小关系:让 “L 队” 字典序小于 “某 E” 的代码实现与分析(字节豆包 | 595点数解答 | 2025-12-03 19:44:59)85
- 深入解析格雷码生成算法:递归求解与代码实现(DeepSeek | 443点数解答 | 2026-01-05 12:21:49)75
- C++实现计算最少添加数字次数以匹配两个数组元素(字节豆包 | 714点数解答 | 2026-03-08 19:44:54)33
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)352
- jQuery 实现动态操作 DOM:打造可增删任务的待办事项列表应用(百度文心 | 1015点数解答 | 2024-10-26 23:41:22)454
- jQuery 打造实用待办事项列表:输入添加、点击删除一步到位!(阿里通义 | 1139点数解答 | 2024-10-29 08:44:48)371
- jQuery 实现动态操作 DOM:打造带添加与删除功能的待办事项列表应用(阿里通义 | 687点数解答 | 2024-10-29 09:25:06)383
- JavaScript开发:为何 React 的 useState 用数组而非对象?优势揭秘!(阿里通义 | 202点数解答 | 2023-11-09 01:54:01)303
- C#工程师必知:数组、链表、哈希、队列、栈数据结构优缺点大揭秘! (百度文心 | 561点数解答 | 2023-11-09 17:56:30)280