1

我在这个 .c 文件中看到了这段代码。

struct node {
  Item data;
  struct node *next;
};

struct stack_type {
  struct node *top;
};

创建两个结构体有什么好处?

4

3 回答 3

4

它可以使代码更清晰地区分整个堆栈和单个节点。

于 2012-08-18T17:36:50.403 回答
3

他们正在寻求实现一个堆栈。每个节点都包含一个指向下一个节点的指针,但每个节点不包含指向栈顶的指针。只有堆栈结构将存储指向堆栈顶部的指针。如果堆栈中的每个节点都指向顶部,则每个节点都必须针对每次推送或弹出进行修改。不必要的顶部指针也会浪费内存。

于 2012-08-18T17:37:06.067 回答
2

通过这种方式,他们可以突出显示作为一个整体在堆栈上工作的函数。Prototype 将期望一个实例struct stack_type- 你不会(假设)struct node从堆栈中间传递。

于 2012-08-18T17:41:37.560 回答