经过N次思考,我觉得对数据结构的理解可以分为4个阶段:
- 在各种场景中,需要不同的数据结构来处理数据。于是抽象出各种数据结构及其组织、操作数据的方式,设计出数据结构模型,可使用图形表示,但不涉及具体如何实现。这是一种从无到有的创造,需要极高的抽象能力和严格的逻辑设计。
- 具体到某种编程语言中(比如java),设计编写相应的算法以实现数据结构。
当然也可以进一步对某种数据结构进行扩展,使其能实现更多的操作或具有不同的特性(如ArrayList
和LinkedList
)。在代码编写上,也可以先抽象出能表示这种结构的接口,再实现具体的类。
当然,大部分编程语言都已经实现了常用的数据结构,不用我们再自行实现。 - 使用数据结构,调用其
api
实现业务需求,熟练掌握其使用方法。 - 思考总结各种数据结构的适用场景,在各种场景中能得心应手地选择合适的数据结构,真正理解各种数据结构的设计精髓和具体实现算法,领悟各种数据结构设计的初心。
作为普通开发者,要勤于思考,多在第4阶段修炼,这样才能使自己的功力真正有所提升。