我现在正在学习和练习Python。我有点害怕它中的类的概念,我想知道如何实现数据结构,如链表,图和树。
我从许多人那里听说,这些是面试和编码比赛中询问的最重要的数据结构。
所以我的问题是,有没有一种方法可以实现所有上述数据结构,而不使用类,而只使用预定义的数据结构,如列表、字典等?
发布于 2020-10-10 02:29:55
如果我们是书呆子,python中的所有东西都是一个类,所以你无法避免它们。如果你关心创建你自己的类的所有事情,比如哪些方法应该在哪里定义,这是我们可以关注的事情。事实上,对于任何给定的类的边界都没有普遍的共识,像C和Go这样的流行程序甚至没有它们。
另一种方法是只使用dict来保存键/值对。粗略地说,类只是一个带有相关方法的字典。字典键可以容纳各种各样的对象(只要它们是可哈希的),而类属性必须是字符串,并进一步限制为适合程序的字典顺序。例如,一个链表可以是{ "next object":obj, "previous object":obj, "item":obj },甚至是一个列表[obj, obj, obj],并且您的代码会记住这些索引是什么。
但是类非常方便,尤其是在实现其他数据结构时。操作链表节点的方法将位于节点本身,这是有意义的。当避免类是可以使用的合理数据结构时,避免类并没有太多好处。
有很多实现链表、树和图的模块。除非这是一个学习数据结构的练习,否则花一些时间使用你最喜欢的搜索引擎是最好的选择。
https://stackoverflow.com/questions/64285130
复制相似问题