C语言实现栈
来源:3-2 栈的基本实现
慕粉4184331
2020-04-17
老师我用C语言实现了一个栈你看下有什么需要修改的
struct Stack
{
int e[10];
int size;
};
typedef Stack* ArrayStack;
Stack* CreateStack() {
ArrayStack stackBottom = (ArrayStack)malloc(sizeof(Stack*));
stackBottom->size = 0;
return stackBottom;
}
int getsize(ArrayStack stack) { return stack->size;}
void push(ArrayStack stackBottom, int e) {
int i = getsize(stackBottom);
stackBottom->e[i] = e;
stackBottom->size++;
}
void pop(ArrayStack stack) {
printf("出栈:%d\n", stack->e[stack->size-1]);
stack->size--;
}
int main() {
ArrayStack stack = CreateStack();
push(stack, 1);
push(stack, 2);
pop(stack);
pop(stack);
}```
写回答
1回答
-
liuyubobobo
2020-04-18
感谢分享:)
思路没有问题。只不过因为是写死的 int e[10];,所以这个栈最多只能放 10 个元素。
可以考虑栈中存放元素的数据类型是 int*,在 CreateStack 时候可以由用户指定栈中最多盛放元素的大小;当然,更复杂一些,可以将课程中介绍的数组元素动态变化的 resize 机制放入其中:)
继续加油!:)
00
相似问题
算法语言的语法
回答 1
用C语言实现这些算法的一些小思考
回答 1