C中链表为什么要建立空的表头?

1.头结点有数据:当你想在自定函数中删改头结点的数据时,或是要修改head的值的时候,不能用头指针head作为形参,这样修改无效。所以你必需把头指针的指针(也就是头指针的地址)当作形参,而通常会把头指针写入一个结构体内,用该结构的指针当作形参。(实质上这也是指针的指针当作形参的办法)。

2.当头结点没有数据时:显然head中的数据域是空的,而head->next是存在的(除非是空表),这就相当于链表中第一个数据结点向下搬移一位,真正的head是head->next,这时你就可以引用头指针head作为形参,因为你只能使用到head中指针head->next。其实,将head中的数据域置空就相当于给head定义了一个指向它的指针,方便了自定义函数直接引用head。 另一个区别就体现在修改头指针的数据域上

猜你喜欢

转载自blog.csdn.net/qq_18671205/article/details/89673210