学数据结构到底是为了什么?怎么学数据结构?

搞清楚学习的目的,才让学习更加有效率。

学习数据结构的一个主要目标是:了解并掌握在特定场景下对数据的组织和处理。

不同的数据结构在不同的情况下具有不同的优势和劣势,因此学习数据结构有助于你理解如何选择和应用适当的数据结构来解决特定的问题。

每种数据结构都具有其自身的特性和用途,例如数组、链表、栈、队列、树、图等。了解它们的内部工作原理以及它们之间的比较有助于你选择最适合解决问题的数据结构。这样,你可以提高程序的效率、减少资源消耗,并更好地满足应用程序的需求。

学了顺序表和链表,你就知道,在查询操作更多的程序中,你应该用顺序表;而修改操作更多的程序中,你要使用链表;而单向链表不方便怎么办,每次都从头到尾好麻烦啊,怎么办?你这时就会想到双向链表or循环链表。

学了栈之后,你就知道,很多涉及后入先出的问题,例如函数递归就是个栈模型、Android的屏幕跳转就用到栈,很多类似的东西,你就会第一时间想到:我会用这东西来去写算法实现这个功能。

学了队列之后,你就知道,对于先入先出要排队的问题,你就要用到队列,例如多个网络下载任务,我该怎么去调度它们去获得网络资源呢?再例如操作系统的进程(or线程)调度,我该怎么去分配资源(像CPU)给多个任务呢?肯定不能全部一起拥有的,资源只有一个,那就要排队!那么怎么排队呢?用普通的队列?但是对于那些优先级高的线程怎么办?那也太共产主义了吧,这时,你就会想到了优先队列,优先队列怎么实现?用堆,然后你就有疑问了,堆是啥玩意?自己查吧,敲累了。

数据结构就相当于:我塞牙了,那么就要用到牙签这“数据结构”,当然你用指甲也行,只不过“性能”没那么好;我要拧螺母,肯定用扳手这个“数据结构”,当然你用钳子也行,只不过也没那么好用。学习数据结构,就是为了了解以后在IT行业里搬砖需要用到什么工具,这些工具有什么利弊,应用于什么场景。以后用的过程中,你会发现这些基础的“工具”也存在着一些缺陷,你不满足于此工具,此时,你就开始自己在这些数据结构的基础上加以改造,这就叫做自定义数据结构。而且,你以后还会造出很多其他应用于实际场景的数据结构。

在学习数据结构的时候,要关注它的使用场景,再后是它的内部原理。

此外,学习数据结构还可以帮助你更好地理解和优化现有的代码,改进算法,以及在解决实际问题时更好地应用计算机科学的原理。因此,了解数据结构确实有助于你在特定场景下找到最佳的数据解决方案。

引用内容:学习数据结构有什么用? - darkhorse pxf的回答 - 知乎 https://www.zhihu.com/question/29587605/answer/44895115

你可能感兴趣的:(数据结构)