数据结构第二章:链表中的头指针

这里先讲个杜撰的故事:
有一名超级无敌的杀手,暂且取名叫蛮王(类比下文的linkedList)吧,为了生活已经退隐峡谷,但是时常想起自己的那把绝世武器--九头鞭(linkedList要操作的链表),这把屠龙刀,藏于峡谷的某处,但是藏匿的地址(类比head头指针),是存在于蛮王的兜里的。每当需要的时候,就可以根据这个地址去找到这把刀。可能我语文比较菜哈,举的例子不好,但是自己还是可以理解的哈。
1.结点类Node
该类有两个构造方法,注意。(很多个Node结点组成了链表,看作九头鞭)

2.linkList类:(蛮王杀手类,内部存放了九头鞭的头指针,根据这个头指针找到鞭在哪,才能进峡谷遨游)



3.Test类(lol官方召唤蛮王类,先找到蛮王,蛮王再找到他的武器九头鞭)

4.linkList类添加方法:(九头鞭武器一步一步的增加结点锻造成功的方法)

初始化蛮王类的时候是会先初始化一个null结点作为head指针,这个结点的地址被蛮王类保存,然后组成九头鞭的结点的创建是和head有关联的。唉,可真是太难解释啦,先自己理解吧,感觉面对面讲可能给你整的明白些哈哈。

关于单链表的存取,有时候我们在单链表的第一个结点(有效元素)之前附设一个结点,称之为头结点;指向头结点的指针,称之为头指针;对单链表的存取必须从头指针开始进行,由于单链表的最后一个数据元素没有直接后继,则指针为NULL。
头指针与头结点不同,头结点即第一个结点,头指针是指向第一个结点的指针。链表中可以没有头结点,但不能没有头指针。

关于头指针:

  • 在线性表的链式存储结构中,头指针是指链表指向第一个结点的指针,若链表有头结点,则头指针就是指向链表头结点的指针。
  • 头指针具有标识作用,故常用头指针冠以链表的名字。
  • 无论链表是否为空,头指针均不为空。头指针是链表的必要元素。

关于头结点:

  • 头结点是为了操作的统一与方便而设立的,放在第一个元素结点之前,其数据域一般无意义(当然有些情况下也可存放链表的长度、用做监视哨等等)。
  • 有了头结点后,对在第一个元素结点前插入结点和删除第一个结点,其操作与对其它结点的操作统一了。
  • 首元结点也就是第一个元素的结点,它是头结点后边的第一个结点。
  • 头结点不是链表所必需的。
原文地址:https://www.cnblogs.com/lovelywcc/p/14154026.html