数据结构-c语言版设计主程序依次实现将字符串zhab,gaanlisi,wangwu入栈再依次弹出
时间: 2024-10-12 16:05:41 浏览: 25
深入了解java中的String-字符串(csdn)————程序.pdf
在C语言中,我们可以使用数组或链表作为基本的数据结构来实现栈。下面是一个简单的示例,我们将使用数组来实现这个过程:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 100 // 栈的最大容量
typedef struct {
char data[MAX_SIZE]; // 存储字符串的数组
int top; // 栈顶指针
} Stack;
// 初始化栈
void init(Stack *stack) {
stack->top = -1;
}
// 判断栈是否为空
int is_empty(Stack *stack) {
return stack->top == -1;
}
// 入栈操作(添加字符串)
void push(Stack *stack, char* str) {
if (stack->top >= MAX_SIZE - 1) {
printf("Stack overflow! Can't push '%s'\n", str);
return;
}
stack->top++;
strcpy(stack->data + stack->top, str);
}
// 出栈操作(弹出并打印字符串)
void pop(Stack *stack) {
if (is_empty(stack)) {
printf("Stack is empty!\n");
return;
}
stack->top--;
printf("Popped string: %s\n", stack->data + stack->top + 1); // 提取字符串并打印
}
int main() {
Stack myStack;
init(&myStack);
// 入栈操作
push(&myStack, "zhab");
push(&myStack, "gaanlisi");
push(&myStack, "wangwu");
// 弹出并打印
while (!is_empty(&myStack)) {
pop(&myStack);
}
return 0;
}
```
在这个例子中,我们首先初始化一个栈,然后依次将给定的字符串压入栈中,最后逐个从栈中弹出并打印。注意,在实际应用中,为了管理内存更有效,可以考虑使用动态内存分配的栈结构。
阅读全文