创建一个长度为6的顺序栈,要求将x的值进行入栈和出栈操作 数据结构(c语言版)
时间: 2024-10-17 21:15:15 浏览: 37
在C语言中,你可以创建一个顺序栈(基于数组实现)来存储数据。首先,需要定义一个结构体来表示栈元素,然后实现一个栈结构体,包含基本的栈操作如初始化、压栈(入栈)、弹栈(出栈)。这里是一个简单的例子:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义栈的类型和元素
typedef struct {
int data[6]; // 使用数组作为栈底
int top; // 栈顶指针
} Stack;
// 初始化栈
Stack* initStack() {
Stack* stack = (Stack*)malloc(sizeof(Stack));
if (stack) {
stack->top = -1;
}
return stack;
}
// 判断栈是否为空
int isEmpty(Stack* stack) {
return stack->top == -1;
}
// 判断栈是否已满
int isFull(Stack* stack) {
return stack->top == 5;
}
// 入栈操作
void push(Stack* stack, int x) {
if (!isFull(stack)) {
stack->top++;
stack->data[stack->top] = x;
} else {
printf("Stack is full.\n");
}
}
// 出栈操作
int pop(Stack* stack) {
if (!isEmpty(stack)) {
int value = stack->data[stack->top];
stack->top--;
return value;
} else {
printf("Stack is empty.\n");
return -1; // 返回特殊值表示空栈操作
}
}
int main() {
Stack* myStack = initStack();
// 入栈示例
push(myStack, 1);
push(myStack, 2);
push(myStack, 3);
// 出栈示例
int poppedValue = pop(myStack);
if (poppedValue != -1) {
printf("Popped value: %d\n", poppedValue);
}
return 0;
}
```
阅读全文