单链表实现线性表的基本算法(一)

来源:互联网 发布:淘宝联盟订单明细api 编辑:程序博客网 时间:2024/05/16 13:46

(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味单链表中数据节点的个数。

0 0
原创粉丝点击