用C语言定义一个存储结构体的栈
时间: 2024-10-08 17:06:53 浏览: 34
计算器 c语言代码
在C语言中,要定义一个存储结构体的栈,你可以先创建一个包含所需结构体类型的栈数据结构,通常使用数组或链表来实现。这里是一个简单的例子,我们假设有一个名为`Person`的结构体,它有`name`和`age`两个成员:
```c
// 定义结构体Person
typedef struct {
char name[50];
int age;
} Person;
// 定义栈的数据结构,使用数组实现
#define MAX_STACK_SIZE 100
Person stack[MAX_STACK_SIZE]; // 最大容量为MAX_STACK_SIZE
int top = -1; // 栈顶指针,初始化为栈底
// 动态插入元素到栈顶
void push(Person p) {
if (top < MAX_STACK_SIZE - 1) {
top++; // 栈顶加一
stack[top] = p;
} else {
printf("Stack overflow.\n");
}
}
// 从栈顶删除并返回元素
Person pop() {
if (top >= 0) {
Person p = stack[top]; // 获取栈顶元素
top--; // 栈顶减一
return p; // 返回并移除元素
} else {
printf("Stack underflow.\n");
return NULL; // 或者返回NULL表示空栈
}
}
// 检查栈是否为空
int isEmpty() {
return top == -1;
}
// 检查栈是否已满
int isFull() {
return top == MAX_STACK_SIZE - 1;
}
```
上述代码定义了一个使用数组作为底层存储的简单栈结构,其中包含了基本的入栈(push),出栈(pop),检查栈空(isEmpty)和检查栈满(isFull)操作。
阅读全文