您的位置:首页 > 其它

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

2014-09-13 19:10 225 查看
(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味单链表中数据节点的个数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: