非常不好意思的又来向大家问小白问题了,关于 python3

2016-03-06 22:27:54 +08:00
 Cassandra
在不创建新的 dictionary 或者 list 或者 linked list 情况下,怎么清空 linked list 里面的所有东西?
简单来说就是通过把 pointer 移来移去,删除 linked list 里面的东西。
删除过后 linked list 应该 print 出来 None

如果允许创建新的 list ,这我也会。
可不被允许我就没辙了。。。。%>_<%
求大家帮帮忙 T^T
4599 次点击
所在节点    Python
44 条回复
Frapples
2016-03-07 13:19:21 +08:00
忘记说了,以上只是模拟出了 malloc 和 free ,有了这两个之后才能开开心心的实现链表了。
kkzxak47
2016-03-07 15:28:41 +08:00
head = readFile('path to file')
p = head

while p is not None:
this = p
p = p['next']
this['data'] = None # or del this['data']?
this['next'] = None # or del this['next']?

说实在的,根据你描述“删除过后 linked list 应该 print 出来 None ”难道不是写一句 head = None 就结束了么……
Cassandra
2016-03-07 22:59:52 +08:00
@kkzxak47 老师大概不会这么 check
wizardforcel
2016-03-09 09:09:50 +08:00
直接把 head 置为 None 就行了。

由于没有循环引用(你也得保证你的链表不成环),引用计数可以正常工作。

实际上,复杂对象里面的引用是树结构的,你这个链表根本不算什么。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/261545

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX