新建一个顺序栈,栈中每个元素的属性有id和name,实现入栈和出栈等操作C语言
时间: 2024-11-05 07:34:06 浏览: 9
在C语言中,我们可以使用数组或链表来实现一个简单的顺序栈,其中每个元素包含id和name两个属性。这里我们选择数组作为示例,因为数组的索引操作更直观。以下是基本的栈结构和部分函数实现:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义栈元素结构体
typedef struct {
int id;
char name[50];
} StackElement;
// 初始化栈
#define MAX_SIZE 100
StackElement stack[MAX_SIZE];
int top = -1; // 栈顶指针
// 入栈操作 (push)
void push(StackElement item) {
if (top >= (MAX_SIZE - 1)) {
printf("Stack is full.\n");
return;
}
top++;
stack[top] = item;
}
// 出栈操作 (pop)
StackElement pop() {
if (top == -1) {
printf("Stack is empty.\n");
return NULL;
}
StackElement temp = stack[top];
top--;
return temp;
}
// 查看栈顶元素 (peek)
StackElement peek() {
if (top == -1) {
printf("Stack is empty.\n");
return NULL;
}
return stack[top];
}
// 检查栈是否为空
int isEmpty() {
return (top == -1);
}
// 测试栈
int main() {
StackElement element;
push({4, "Alice"});
push({2, "Bob"});
element = pop(); // 脱下顶元素,输出 {2, "Bob"}
printf("Popped: ID=%d, Name=%s\n", element.id, element.name);
element = peek(); // 查看栈顶,但不删除,输出 {4, "Alice"}
return 0;
}
```
阅读全文