一、定义节点以及栈
![](https://img.haomeiwen.com/i20116762/6529b271e595e8d7.png)
节点的结构体中由于需要定义struct Node *pnext指针,所以typedef struct后面的Node不可以省略,否则结构体中无法定义next指针。有人可能会问,为什么不能用后面重命名的Node或者pMode来定义next指针呢,这是因为编译顺序导致的,因为需要定义next指针的位置在重命名的Node和pNode前面,所以不可以使用。
而栈的结构体中,不需要定义本结构体类型的指针,所以typedef struct后面的名字可以省略。
二、栈相关操作方法声明
![](https://img.haomeiwen.com/i20116762/cdd524648b98826d.png)
三、方法实现
![](https://img.haomeiwen.com/i20116762/ad1f607acd800453.png)
![](https://img.haomeiwen.com/i20116762/54ae5601bc34a6a3.png)
四、测试及结果
![](https://img.haomeiwen.com/i20116762/2419fcf366211a4b.png)
网友评论