问题基于 单链表的存储结构, 如下:
typedef struct Node{ ElemType data; struct Node * next; }Node, * LinkList;
现在假设在main函数中存在指向链表的头指针Head(用Node * Head 或者 LinkList Head定义);
初始化函数为:
InitList(LinkList *L){ *L = (LinkList)malloc(sizeof(Node)); (*L) -> next = NULL; }
其具体分析如下图:
在主调函数中只需声明指向头节点的指针变量即可,不需要给其实际指向,但赋值为空是必要的(Head = NULL),再调用此函数巧妙运用指针改变主调函数的值,达到初始化的目的。
声明:以上函数均来自《数据结构-用C语言表示》一书(耿国华主编);
个人见解,仅供参考,希望大家批评指正。