用c语言新建一个顺序栈,栈中每个元素的属性有id和name,实现入栈和出栈等操作。
时间: 2024-10-13 22:05:47 浏览: 32
在 C 语言中,我们可以使用数组来创建一个简单的顺序栈结构,因为数组可以看作是一种线性的数据结构。首先,我们需要定义一个结构体 `StackElement` 来表示栈中的元素,包含 id 和 name 的属性,然后定义栈的大小、指针以及入栈(push)、出栈(pop)等基本操作。
```c
#include <stdio.h>
#include <stdlib.h>
// 定义栈元素结构体
typedef struct {
int id;
char name[50];
} StackElement;
// 定义栈结构
#define MAX_STACK_SIZE 10
StackElement stack[MAX_STACK_SIZE]; // 堆顶元素索引
int top = -1; // 栈顶指针
// 入栈操作
void push(StackElement item) {
if (top < MAX_STACK_SIZE - 1) {
top++;
stack[top] = item;
printf("元素 %d '%s' 入栈成功.\n", item.id, item.name);
} else {
printf("栈已满,无法入栈.\n");
}
}
// 出栈操作
StackElement pop() {
if (top != -1) {
StackElement item = stack[top];
top--;
return item;
} else {
printf("栈为空,无法出栈.\n");
return NULL; // 返回空值以示错误
}
}
// 判断栈是否为空
int is_empty() {
return top == -1;
}
// 主函数演示栈的操作
int main() {
StackElement item;
// 入栈
item.id = 1;
strncpy(item.name, "Alice", sizeof(item.name));
push(item);
// 出栈并打印
StackElement popped_item = pop();
if (popped_item) {
printf("出栈元素: id=%d, name='%s'\n", popped_item.id, popped_item.name);
}
return 0;
}
```
阅读全文