(1) 定义顺序栈结构对象,最多能存100个数据; (2) 调用创建函数初始化顺序栈为A、B、C、D、E、F、G、H、I、J、K、H、I (3) 调用出栈函数,要求输出当前出栈元素的顺序; C语言
时间: 2024-10-21 18:10:58 浏览: 28
数据结构实验指导书2.pdf
在C语言中,我们可以创建一个简单的顺序栈结构来存储最多100个字符。首先,我们需要定义一个数组作为栈的容器,并设置一个变量表示栈顶位置。
```c
#include <stdio.h>
#define MAX_SIZE 100
// 定义顺序栈结构体
typedef struct Stack {
char items[MAX_SIZE];
int top; // 栈顶指针
} Stack;
// 初始化顺序栈
void initStack(Stack* stack, char* initialData) {
stack->top = -1; // 初始化栈顶为-1,表示空栈
int i;
for (i = 0; initialData[i] != '\0'; i++) {
if (stack->top < MAX_SIZE - 1) { // 防止溢出
stack->items[++stack->top] = initialData[i]; // 入栈操作
} else {
printf("Stack overflow! Cannot push more elements.\n");
break;
}
}
}
// 出栈并打印当前元素
char popAndPrint(Stack* stack) {
if (stack->top == -1) {
printf("Stack is empty.\n");
return '\0';
} else {
char poppedElement = stack->items[stack->top--]; // 出栈操作
printf("%c ", poppedElement); // 打印元素
return poppedElement;
}
}
int main() {
Stack myStack;
initStack(&myStack, "ABCDEFGHIJKHI"); // 初始化栈
while (true) {
char poppedChar = popAndPrint(&myStack);
if (poppedChar == '\0') break; // 如果栈为空则退出循环
}
return 0;
}
```
当你运行这个程序时,它会按照初始数据"ABCDEFGHIJKHI"的顺序依次出栈并打印,直到栈为空。
阅读全文