编写一个程序,将一个顺序栈的元素依次取出,并打印其元素值。
时间: 2024-04-30 15:23:10 浏览: 19
下面是Python的实现:
```python
class Stack:
def __init__(self):
self.items = []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def is_empty(self):
return len(self.items) == 0
def size(self):
return len(self.items)
# 创建一个顺序栈
stack = Stack()
# 往栈里添加元素
stack.push(1)
stack.push(2)
stack.push(3)
# 依次取出并打印元素
while not stack.is_empty():
print(stack.pop())
```
输出:
```
3
2
1
```
相关问题
使用c语言编写一个程序,将一个顺序栈的元素依次取出,并打印其元素值。
以下是一个使用C语言编写的程序,用于将一个顺序栈的元素依次取出并打印其元素值:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
typedef struct {
int data[MAX_SIZE];
int top;
} Stack;
void initStack(Stack *s) {
s->top = -1;
}
int isStackEmpty(Stack *s) {
return s->top == -1;
}
int isStackFull(Stack *s) {
return s->top == MAX_SIZE - 1;
}
void push(Stack *s, int x) {
if (isStackFull(s)) {
printf("Stack overflow\n");
exit(1);
}
s->data[++s->top] = x;
}
int pop(Stack *s) {
if (isStackEmpty(s)) {
printf("Stack underflow\n");
exit(1);
}
return s->data[s->top--];
}
int main() {
Stack s;
initStack(&s);
push(&s, 1);
push(&s, 2);
push(&s, 3);
while (!isStackEmpty(&s)) {
int value = pop(&s);
printf("%d\n", value);
}
return 0;
}
```
在此程序中,我们首先定义了一个结构体类型`Stack`,用于表示一个顺序栈。该结构体包含一个整型数组`data`和一个整型变量`top`,分别用于存储栈中的元素和表示栈顶位置。
然后,我们定义了一些函数来操作该顺序栈。`initStack`函数用于初始化一个空栈,将栈顶位置设为-1;`isStackEmpty`和`isStackFull`函数分别用于判断栈是否为空和是否已满;`push`函数用于将一个元素压入栈中,如果栈已满则输出错误信息并退出程序;`pop`函数用于弹出栈顶元素,如果栈为空则输出错误信息并退出程序。
在主函数中,我们首先创建一个空栈`s`,然后将元素1、2、3分别压入栈中。接着,我们使用一个while循环依次弹出栈中的元素,并将其值打印出来。最后,程序返回0表示正常结束。
运行该程序,输出为:
```
3
2
1
```
使用c语言编写一个程序,手动输入一组元素并将一个顺序栈的元素依次取出,并打印其元素值。
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 10 // 栈的最大容量
typedef struct {
int data[MAX_SIZE]; // 存储元素的数组
int top; // 栈顶指针
} SeqStack;
// 初始化栈
void initStack(SeqStack *s) {
s->top = -1;
}
// 判断栈是否为空
int isStackEmpty(SeqStack *s) {
return s->top == -1;
}
// 判断栈是否已满
int isStackFull(SeqStack *s) {
return s->top == MAX_SIZE - 1;
}
// 入栈操作
void push(SeqStack *s, int x) {
if (isStackFull(s)) {
printf("Stack is full.\n");
return;
}
s->top++;
s->data[s->top] = x;
}
// 出栈操作
int pop(SeqStack *s) {
if (isStackEmpty(s)) {
printf("Stack is empty.\n");
return -1;
}
int x = s->data[s->top];
s->top--;
return x;
}
int main() {
SeqStack s;
initStack(&s);
int n, x;
printf("Enter the number of elements: ");
scanf("%d", &n);
printf("Enter the elements: ");
for (int i = 0; i < n; i++) {
scanf("%d", &x);
push(&s, x);
}
printf("Elements in the stack: ");
while (!isStackEmpty(&s)) {
printf("%d ", pop(&s));
}
printf("\n");
return 0;
}
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.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)