帮我用c++写一段名叫awa的结构体入栈出栈的操作
时间: 2024-05-09 21:21:11 浏览: 11
以下是使用C语言编写的awa结构体入栈出栈的操作示例:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100 // 栈的最大容量
// 定义awa结构体
typedef struct {
int a;
double w;
char *name;
} awa;
// 定义栈结构体
typedef struct {
awa data[MAX_SIZE]; // 数据存储数组
int top; // 栈顶指针
} stack;
// 初始化栈
void initStack(stack *s) {
s->top = -1;
}
// 判断栈是否为空
int isEmpty(stack *s) {
return s->top == -1;
}
// 判断栈是否已满
int isFull(stack *s) {
return s->top == MAX_SIZE - 1;
}
// 入栈
int push(stack *s, awa item) {
if (isFull(s)) {
return 0; // 栈已满
} else {
s->top++;
s->data[s->top] = item;
return 1; // 入栈成功
}
}
// 出栈
int pop(stack *s, awa *item) {
if (isEmpty(s)) {
return 0; // 栈为空
} else {
*item = s->data[s->top];
s->top--;
return 1; // 出栈成功
}
}
int main() {
stack s;
initStack(&s);
// 创建awa结构体并入栈
awa a1 = {100, 3.14, "Alice"};
awa a2 = {200, 6.28, "Bob"};
awa a3 = {300, 9.42, "Charlie"};
push(&s, a1);
push(&s, a2);
push(&s, a3);
// 出栈并输出awa结构体的信息
awa item;
while (pop(&s, &item)) {
printf("a: %d, w: %f, name: %s\n", item.a, item.w, item.name);
}
return 0;
}
```
以上代码中,我们首先定义了awa结构体和stack结构体,并实现了初始化栈、判断栈是否为空或已满、入栈、出栈等基本操作。在main函数中,我们创建了三个awa结构体并依次入栈,然后使用while循环不断出栈并输出awa结构体的信息,直到栈为空为止。通过以上代码,我们成功实现了awa结构体的入栈出栈操作。