今天我说的内容是单链表,所以提前来No pic say a J8 环节!
其实大家都知道,单链表就是我们所说的链式存储结构当中最简单,也是最重要的一个内容。
所以单链表的图形描述就是下图。
先别着急,看不懂也别慌。我先说几个注意事项,再给你细细道来。
1.头指针:是指链表指向第一个结点的指针,若链表有头结点(注意也就是说头结点不一定要有),则是指向头结点的指针。
2.头指针的作用:具有标识作用,所以常用头指针冠以链表的名称(指针变量的名字)
3.无论链表是否为空,头指针均不为空
4.头结点是为了操作的统一和方便设立的,放在第一个有数据“真”元素结点之前,其数据域一般无意义(但也可以用来存放链表的长度)
5.有了头结点,对在第一个接结点前插入结点和删除第一个结点操作与其他结点的操作就统一了。
7.对数据元素ai来说,除了存储其本身的信息外,还需要存储一个指示其直接后继的信息(即直接后继的地址)
8.空链表
所以接下来看看单链表的结构体定义吧
define ElemType int typedef struct LNode { ElemType data; struct LNode *next; }LNode;//取别名 typedef struct LNode *LinkList;//取别名 结构体两个别名
其实啊,线性表1看的认真的同学这个结构体,但是跟顺序表不同在于,单链表的结构体定义中内部还有一个结构体指针,
这个指针是指向下一个结构体的指针(也就是第一个指针域指向第二个的结构体的地址)