头指针和头结点
头指针:通常用来标识一个单链表,头指针为NULL时表示一个空表
单链表第一个结点之前附加一个结点,为头结点,指针域指向线性表的第一个元素结点。
区分:不管带不带头结点,头指针都始终指向链表的第一个结点,而头结点是带头结点的链表中的第一个结点,通常不存储信息。
如果有头结点,头指针就指向头结点。
L=(LinkList)malloc(sizeof(LNode));
L为头结点地址。
所以 带头结点的双循环链表L为空的条件是:
L->prior==L && L->next==L
疑惑1:给定有n个元素的一维数组,建立一个有序的单链表的最低时间复杂度是:O(nlogn)
当一维数组有序时,时间复杂度最低,为O(n)
静态链表用于需要较大储存空间的情况(个人觉得是需要预先分配的情况下)
题目:需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构为:静态链表
不是单链表的原因猜想:单链表动态分配内存,大概会分配堆栈空间,而静态链表可以定义在外部,存放在静态区,可以分配更大的空间
期待讨论