链表中,结点由数据域和指针域构成。数据域存储了数据,指针域存储直接后继的地址。使用C语言如何才能表示一个结点?
结论就是:在C中使用结构体表示一个结点。结构体中可以包含多个成员,数据域很容易理解,即存储的数据。但指针域如何表示?根据定义指针域存储直接后继的地址,因此可以明确指针域是一个指针,但是什么类型的指针?看如下的图示
结点p的后继是结点q,指针域保存的是后继结点的地址,后继结点q是一个结构体类型,因此指针域类型是结构体指针。如下定义了一个结构体。
其中data表示数据域,指针域由next表示,类型是structLNode*。
使用中为了方便,可以使用typedef定义结构体,如下所示
使用了typedef,其中定义结构体变量:
LNodeL;等价structLNodeL;
LinklistL;等价structLNode*L;