用c语言写一段顺序栈进栈并输出的代码
时间: 2024-10-25 13:03:44 浏览: 22
栈的顺序存储结构C实现
当然可以。在 C 语言中,我们可以使用数组来实现一个简单的顺序栈。下面是一个基础的顺序栈结构以及入栈和出栈操作的示例代码:
```c
#include <stdio.h>
#define MAX_SIZE 10 // 栈的最大容量
// 定义栈结构体
typedef struct {
int data[MAX_SIZE]; // 存储元素的数组
int top; // 栈顶指针,表示栈顶元素的位置
} Stack;
// 初始化栈
void init(Stack *s) {
s->top = -1;
}
// 判断栈是否为空
int isEmpty(Stack *s) {
return (s->top == -1);
}
// 入栈操作
void push(Stack *s, int item) {
if (isEmpty(s)) {
s->top = 0;
} else {
s->top++;
}
s->data[s->top] = item;
}
// 出栈操作(返回值为栈顶元素)
int pop(Stack *s) {
if (isEmpty(s)) {
printf("Stack is empty.\n");
return -1;
} else {
int item = s->data[s->top];
s->top--;
return item;
}
}
// 打印栈的内容
void printStack(Stack *s) {
for (int i = 0; i <= s->top; i++) {
printf("%d ", s->data[i]);
}
printf("\n");
}
int main() {
Stack myStack;
init(&myStack);
// 入栈示例
push(&myStack, 10);
push(&myStack, 20);
push(&myStack, 30);
// 输出栈内容
printStack(&myStack); // 应该输出 "10 20 30"
// 出栈示例
printf("Popped element: %d\n", pop(&myStack)); // 应该输出 "30"
// 再次打印,验证栈已更新
printStack(&myStack); // 应该输出 "10 20"
return 0;
}
```
这个例子展示了如何创建一个顺序栈、入栈、出栈以及查看栈内元素的操作。当你运行此程序,它会先将数字 10, 20, 和 30 分别推入栈中,然后依次弹出并打印。
阅读全文