用c语言编写一个顺序栈并编写主函数
时间: 2024-10-19 20:03:20 浏览: 33
在C语言中,我们可以按照以下步骤创建一个顺序栈并编写主函数:
首先,定义一个顺序栈结构体,包括一个指向数组的指针、数组大小(用于存储元素)以及栈顶索引:
```c
typedef struct {
ElemType* data;
int top;
int Maxsize;
} SqStack;
```
接着,实现`Push()`函数,如引用[1]所示:
```c
// 入栈
void Push(SqStack* s, ElemType e) {
if (s->top >= s->Maxsize) {
printf("栈已满!\n");
int len;
printf("请输入申请空间的大小: ");
scanf("%d", &len);
reMalloc(s, len + s->Maxsize); // 重新分配内存
}
s->data[s->top++] = e;
printf("入栈成功!\n");
}
```
这里假设`reMalloc()`是一个自定义函数,用于动态扩展栈空间。在实际项目中,可以使用`realloc()`函数来完成这个任务。
主函数(main函数)的示例:
```c
int main() {
SqStack stack;
stack.data = (ElemType*)malloc(sizeof(ElemType) * 5); // 初始分配5个元素的空间
stack.top = 0;
stack.Maxsize = 5;
// 测试栈
Push(&stack, 10); // 入栈
Push(&stack, 20);
if (stack.top < stack.Maxsize) { // 检查是否还有空间
Push(&stack, 30);
} else {
printf("再次尝试入栈时栈已满\n");
}
// 可以添加更多栈操作...
// 最后记得释放栈空间
free(stack.data);
return 0;
}
```
在上述代码中,我们创建了一个栈,然后尝试入栈一些元素。注意要确保在结束时调用`free()`释放内存。
阅读全文