先接一下上次的笔记,实现对单链表进行删除
思路实现
声明结点p和q首节点赋值给p,下一个结点赋值给q循环执行释放p,将q赋值给p的操作(删除第一个结点后,之后的结点就是首节点了,以此类推)
string ClearList(Node
*L){
Node
*p,
*q;
p
= L
->next;
while(p){
q
= p
->next;
delete p;
p
= q;
}
L
->next
= NULL;
return "Clear";
}
问题
delete p;p = p->next;不可以代替循环体吗?
注意delete(p) 释放了数据域和指针域,所以无法记录下一节点了。
应用
小网站的用户信息。除了注册外,基本是读取。所以顺序存储好一些。像一些插入/删除操作多的,比如游戏装备,那么肯定是单链表好些需要更高的需求和性能的平衡,还是需要其他复杂的数据结构