我在这个 .c 文件中看到了这段代码。
struct node {
Item data;
struct node *next;
};
struct stack_type {
struct node *top;
};
创建两个结构体有什么好处?
它可以使代码更清晰地区分整个堆栈和单个节点。
他们正在寻求实现一个堆栈。每个节点都包含一个指向下一个节点的指针,但每个节点不包含指向栈顶的指针。只有堆栈结构将存储指向堆栈顶部的指针。如果堆栈中的每个节点都指向顶部,则每个节点都必须针对每次推送或弹出进行修改。不必要的顶部指针也会浪费内存。
通过这种方式,他们可以突出显示作为一个整体在堆栈上工作的函数。Prototype 将期望一个实例struct stack_type
- 你不会(假设)struct node
从堆栈中间传递。