typedef struct Node
{
Element data;
struct Node * next;
}Node, * Linklist;
以上这段代码几乎在任何数据结构教材中都会出现,如此经典的一段代码的理解还真是费了我一番功夫。
之前学的是C++,这种纯正C风格的写法几乎没有用到过。。
typedef的用法在百度百科里有比较详尽的解释了,我就不出丑了。这里主要针对这段代码做一小点解读吧。
1.struct Node{};定义了一个stuct Node类型的结构体(C语言规定结构体类型为struct Node,而不是Node);
2.typdef struct Node Node;可能人家觉得老写struct Node 有点烦,于是给struct Node 取了一个别名Node;
3.typedef Node * Linklist;由于最终目的是要定义一个链表,即在主函数里要出现这样的定义:Linklist L;所以就在这里将 Node *取个别名为Linklist。
4.至于在各种链表操作函数虚参中出现的Linklist * L以及Linklist L以及Linklist &L等问题,其实都是要看在主函数中是如何调用这些函数的。