1.定义一个数组存储栈中的数据,长度为10 2.一次输入15个数(用for循环入栈),将堆栈中的元素依次出栈打印元素值 用C语言结构体写
时间: 2023-06-07 19:12:04 浏览: 118
1. 定义一个数组存储栈中的数据,长度为10:
```c
#define MAX_LEN 10
typedef struct {
int data[MAX_LEN];
int top; // 栈顶指针
} Stack;
```
2. 一次输入15个数(用for循环入栈),将堆栈中的元素依次出栈打印元素值:
```c
void push(Stack *stack, int x) {
if (stack->top == MAX_LEN - 1) {
printf("Stack is full\n");
return;
}
stack->top++;
stack->data[stack->top] = x;
}
int pop(Stack *stack) {
if (stack->top == -1) {
printf("Stack is empty\n");
return -1;
}
int x = stack->data[stack->top];
stack->top--;
return x;
}
int main() {
Stack stack = { {0}, -1 }; // 初始化栈
int input[15] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
int i;
for (i = 0; i < 15; i++) {
push(&stack, input[i]); // 入栈
}
for (i = 0; i < 15; i++) {
printf("%d ", pop(&stack)); // 出栈并打印元素
}
printf("\n");
return 0;
}
```
阅读全文