再窥--单链表和顺序存储
【再窥--单链表和顺序存储】先接一下上次的笔记,实现对单链表进行删除思路实现
- 声明结点p和q
- 首节点赋值给p,下一个结点赋值给q
- 循环执行释放p,将q赋值给p的操作(删除第一个结点后,之后的结点就是首节点了,以此类推)
string ClearList(Node *L){
Node *p,*q;
p = L->next;
//指向首节点
while(p){
q = p->next;
//q承接下一个节点
delete p;
//删除 上一个 节点
p = q;
}
L->next = NULL;
//成为了空表
return "Clear";
}
问题
注意delete p; p = p->next;
不可以代替循环体吗?
delete(p)
释放了数据域和指针域,所以无法记录下一节点了。应用
- 小网站的用户信息。除了注册外,基本是读取。所以顺序存储好一些。
- 像一些插入/删除操作多的,比如游戏装备,那么肯定是单链表好些
- 需要更高的需求和性能的平衡,还是需要其他复杂的数据结构
推荐阅读
- 急于表达——往往欲速则不达
- 第三节|第三节 快乐和幸福(12)
- 20170612时间和注意力开销记录
- 2.6|2.6 Photoshop操作步骤的撤消和重做 [Ps教程]
- 对称加密和非对称加密的区别
- 眼光要放高远
- 樱花雨
- 前任
- 2020-04-07vue中Axios的封装和API接口的管理
- 烦恼和幸福