用c语言编程建立一个顺序栈,初始化栈,通过键盘读取元素实现进栈操作(从键盘接受元素个数n以及n个整型数),实现元素出栈操作,并打印出输出元素
时间: 2024-02-22 10:56:39 浏览: 68
好的,让我来为您解答。以下是建立顺序栈并实现进栈、出栈操作的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100 // 定义栈的最大长度
typedef struct {
int data[MAXSIZE];
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 == MAXSIZE-1;
}
// 进栈操作
void Push(Stack *S, int x) {
if (IsFull(S)) {
printf("Stack is full!\n");
return;
}
S->data[++S->top] = x;
}
// 出栈操作
int Pop(Stack *S) {
if (IsEmpty(S)) {
printf("Stack is empty!\n");
return -1;
}
return S->data[S->top--];
}
int main() {
Stack S;
InitStack(&S);
int n, i, x;
printf("Enter the number of elements: ");
scanf("%d", &n);
for (i = 0; i < n; i++) {
printf("Enter element %d: ", i+1);
scanf("%d", &x);
Push(&S, x);
}
printf("Elements popped from stack: ");
while (!IsEmpty(&S)) {
printf("%d ", Pop(&S));
}
return 0;
}
```
在这个程序中,我们定义了一个结构体 `Stack` 来表示栈,其中 `data` 数组存储栈中的元素,`top` 表示栈顶指针。接下来定义了一些函数来初始化栈、判断栈是否为空或已满、进栈、出栈等操作。在 `main` 函数中,我们首先初始化栈,然后通过键盘输入元素个数和元素值,依次进栈。最后在出栈时,依次将栈中元素弹出并打印输出。
阅读全文