繁体   English   中英

如何在 python 中不使用类来实现数据结构?

[英]How do I implement data structures without using classes in python?

我现在正在学习和练习 Python。 我有点害怕其中的类概念,我一直想知道如何实现链表、图和树等数据结构。

我从许多人那里听说,这些是面试和编码竞赛中最重要的数据结构。

所以我的问题是,有没有一种方法可以在不使用类的情况下,仅通过使用预定义的数据结构(如列表、字典等)来实现所有上述数据结构?

如果我们学究气,python 中的所有内容都是 class,因此您无法避免它们。 如果您关心创建您自己的 class 的所有内容,例如应该在何处定义哪些方法,那是我们可以关注的事情。 事实上,对于任何给定的 class 的边界并没有普遍的共识,像 C 和 Go 这样的流行程序甚至没有它们。

另一种方法是只使用dict来保存键/值对。 粗略地说,无论如何, class 只是一个带有相关方法的字典。 字典键可以包含各种各样的对象(只要它们是可散列的),而 class 属性必须是字符串,并且进一步限制为适合程序中的字典顺序。 例如,链表可以是{ "next object":obj, "previous object":obj, "item":obj }甚至是一个列表[obj, obj, obj]并且您的代码会记住这些索引是什么。

但是类非常方便,尤其是在实现其他数据结构时。 操作链表节点的方法将在节点本身上是有道理的。 当它们是合理的数据结构时,避免使用类并没有太多好处。

有很多模块可以实现链表、树和图。 除非这是学习数据结构的练习,否则花一些时间使用您最喜欢的搜索引擎是最好的选择。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM