C语言中新建一个顺序栈,求出栈中所有元素个数
时间: 2024-10-24 18:05:17 浏览: 18
在C语言中,你可以通过定义一个结构体表示栈元素,然后创建一个数组来模拟顺序栈(也称作数组栈)。首先,定义一个栈元素结构,例如:
```c
typedef struct {
int data; // 栈元素的数据域
} StackElement;
// 定义栈的大小
#define STACK_SIZE 100
StackElement stack[STACK_SIZE]; // 顺序栈数组
int top = -1; // 栈顶指针,初始化为-1表示空栈
```
接下来,你可以编写函数来管理栈的操作,比如入栈、出栈以及获取栈中元素个数:
```c
void push(StackElement *stack, int value) {
if (top < STACK_SIZE - 1) { // 如果还有空间
top++; // 更新栈顶指针
stack[top].data = value;
} else {
printf("Stack overflow.\n");
}
}
int pop(StackElement *stack) {
if (top == -1) { // 如果栈为空
return -1; // 返回错误码
} else {
int popped_value = stack[top].data; // 弹出并保存值
top--; // 减少栈顶指针
return popped_value;
}
}
int getStackSize(StackElement *stack) {
return top + 1; // 返回栈中元素的实际个数,加1是因为top包含最后一个元素的位置
}
```
现在你可以创建栈并使用这些函数来操作它,同时使用`getStackSize`函数获取栈中的元素个数。
阅读全文