(1)初始化线性表lnitList(L)
该运算建立一个空的单链表,即创建一个头节点
void InitList(LinkList *&l)
{
L=(LinkList*)new(sizeof(LinkList));
L->next=NULL; //创建头节点,其next域置为NULL
}
本算法的时间复杂度为O(1)。
(2)销毁线性表DestroyList(L)。
释放单链表L占用的内存空间,即逐一释放全部节点的空间。
void DestroyList(LinkList *&L)
{
LinkList *pre=L,*p=L->next; //pre指向*p的前驱节点
whil(p!=NULL) //扫描单链表L
{
free(pre); //释放*pre节点
pre=p; //pre、p同步后移一个节点
p=pre->next;
} //循环结束时,p为NULL,pre指向尾节点,释放它
free(pre);
}
本算法的时间复杂度为O(n),其中n味单链表中数据节点的个数。