万江区仿做网站,巨量引擎广告投放平台官网,微商营销宝最新版,微商可以做网站推广吗本节主要介绍单链表的简单算法实现。
本文部分ppt、视频截图来自#xff1a;[青岛大学-王卓老师的个人空间-王卓老师个人主页-哔哩哔哩视频]
1. 单链表简单算法 ☆
单链表的初始化#xff08;带头结点#xff09;
即构造一个如下图所示的空表 【算法步骤】 生成新结点作…本节主要介绍单链表的简单算法实现。
本文部分ppt、视频截图来自[青岛大学-王卓老师的个人空间-王卓老师个人主页-哔哩哔哩视频]
1. 单链表简单算法 ☆
单链表的初始化带头结点
即构造一个如下图所示的空表 【算法步骤】 生成新结点作为头结点用头指针L指向头结点。将头结点的指针域置空。 【算法描述】
Status InitList_L(LinkList L){L new LNode; //或L(LinkList) malloc (sizeof(LNode));L - next NULL; //指针域置空return OK;
}判断链表是否为空
空表链表中无元素称为空链表头指针和头结点仍然在 【算法思路】 判断头结点的指针域是否为空 【算法判断链表是否为空】
int ListEmpty(LinkList L){//若L为空表则返回1否则返回0if(L-next) //非空return 0;elsereturn 1;
}单链表的销毁
链表销毁后不存在。 【算法思路】 从头指针开始一次释放所有结点。 【算法销毁单链表L】
Status DestroyList_L(LinkList L){ //销毁单链表LLnode *p; //或LinkList pwhile(L){p L;L L - next;delete p;}return OK;
}清空链表
链表仍然存在但链表中无元素称为空链表头指针和头结点仍然存在 【算法思路】 依次释放所有结点并将头结点指针域设置为空。 【算法清空链表L】
Status ClearList(LinkList L){ //将L重置为空表Lnode *p,*q; //或LinkList p,qp L- next;while(p){ //没到表尾q p - next;delete p;p q;}L - next NULL; //头结点指针域为空return OK;
}求链表的表长 【算法思路】 从首元结点开始依次计数所有结点。若是非空结点表长加1。 【算法求单链表L的表长】
int ListLength_L(LinkList L){ //返回L中数据元素的个数LinkList p;p L - next; //p指向第一个结点i 0;while(p){ //遍历单链表统计结点数i; p p - next; //最后一个结点的下一结点指针域为空循环结束}return i;
}