最全面、最前沿、最专业的游戏研发实战

提供最全面的游戏研发技能分享,让您在最短时间变成高级游戏工程师

查看:0|回复:6

【推荐】数据结构太难,怎么有效的学好数据结构?

 attach_img

6

帖子

7

回复

11

积分
最后登录:
2025-04-05 17:44
注册时间:
2023-03-12 16:29
楼主
  发表于:2025-04-05 19:07:44|查看用户信息

有没有大神告知一下怎么学好数据结构,大概就是告诉一下怎么从基础到入门,学过c语言,但是学得很迷糊,不知道要怎么学好数据结构。

2

帖子

4

回复

5

积分
最后登录:
2025-04-05 17:34
注册时间:
2023-03-12 16:36
1 楼
  发表于:2025-04-05 19:09:28|查看用户信息

学习一门课程的方式有很多,对于数据结构,建议先到某站上选择一个播放量高一点的串讲视频课程把所有的数据结构内容过一遍,有人带着你学习会高效很多。


看视频学习的过程中,记录下每种结构的定义和特征,每次学完一个数据结构最好再用c语言手敲下代码,刚开始可以逐行照着讲解抄。不要觉得抄代码丢人哈,和小孩学学写字一样,最开始就是要模仿的,模仿多了就能找到感觉,有了感觉才能逐渐深入理解。


等到你把概念还有对应的练习内容都完成一遍,数据结构的框架、特点基本就都掌握了。接下来就是找实际的场景去运用它们了。其实真实的企业开发工作中原模原样的使用这些数据结构的机会也是不多的,但是有种平台却非常适合我们去使用数据结构,同时也能帮助我们进一步理解和掌握。那就是像leetcode这样的刷题网站。


如果你学习数据结构是准备着以后有机会从事研发类的工作,那leetcode对你正好也会个必需品。类似的其他平台也是可以的,非托,自己百度下就行。通过在平台上搜索和所学习的数据结构相关联的算法题可以让人更清晰的认识其真正的作用和用途。


数据结构和算法其实是不分家的,都是对于问题解空间的描述载体,数据结构勾勒解决方案的物理结构,而算法则描绘解决方案的逻辑结构,两者结合才能完美呈现整体的解决方案。学习了数据结构,可以顺带把算法也学学。


如果还想知道数据结构在工业界的应用,可以尝试学习下主流编程语言的底层逻辑实现,例如TreeMap实现原理、ArrayList、LinkedList、HashMap、JVM内存结构、Java垃圾回收机制等等,都是非常好的数据结构应用实例。


2

帖子

6

回复

8

积分
最后登录:
2025-04-05 17:43
注册时间:
2023-02-26 14:02
2 楼
  发表于:2025-04-05 19:10:45|查看用户信息

数据结构本身并不难,难的可能是用C语言去实现各种数据结构吧~~

数据结构入门的话,先搞清楚几个基本的数据结构的概念:数组、链表、栈、队列。

数组:一段连续的内存,连续存储多个元素,元素的访问通过位置(数组索引)直接访问。

链表:非连续的存储,各个元素之间通过连接(指针)联系在一起,通常访问某个元素,需要从表头开始查找。

栈:先进后出(First In Last Out),还有一个关键的概念“栈顶”,两种基本的栈操作是,“出栈”——把栈顶的元素移除,“压栈”——把一个元素放到栈顶。

队列:先进先出(First In First Out),最简单的一种队列,从队头出队列,从队尾入队列。

如果上面的文字不好理解,可以网上搜一搜这几种最基本的数据结构,在网上有很多那种动图的操作演示,一目了然,应该不难理解了~~


1

帖子

6

回复

7

积分
最后登录:
2025-04-05 18:27
注册时间:
2023-03-12 11:23
3 楼
  发表于:2025-04-05 19:12:07|查看用户信息

编程 8+ 年,科班出身,当初也有过和题主类似的困惑,回答一下这个问题。


学习数据结构,必须有足够好的编程基础,至少数量掌握一门编程语言。比如在 C 语言基础上学习数据结构,必须熟练掌握 C 语言里的指针和结构体,否则没法学数据结构。


C语言学的很迷糊,那就先不要考虑学习数据结构,先把 C 语言回回炉。如果你自认编程基础可以了,没什么问题,那可以尝试独立编写一个小项目,比如学生信息管理系统、贪吃蛇游戏等等,如果能独立编写出来,你才具备了学习数据结构的条件。


如果你的 C 语言基础不好,硬着头皮学数据结构,会有一种“理论能看懂,但不会写代码”的无力感。


5

帖子

3

回复

7

积分
最后登录:
2025-04-05 15:07
注册时间:
2023-02-26 15:02
4 楼
  发表于:2025-04-05 19:12:39|查看用户信息

可以先学习下数据结构的基本概念,例如数组、链表、栈、队列、树、图等,这些是构建复杂数据结构的基础。


如果没有基础,建议先不要看《算法导论》,可以看下《大话数据结构》看着有趣也能看进去。


最后就是刷题去leetcode上按分类去刷,学以致用,就能知其然知其所以然。


3

帖子

5

回复

7

积分
最后登录:
2025-04-05 17:48
注册时间:
2023-03-12 23:24
5 楼
  发表于:2025-04-05 19:14:38|查看用户信息

C语言学的很迷糊的话,建议想把 C 语言回回炉,尤其是 C 语言的指针和结构体,这两部分一定要熟练掌握,否则很难学会数据结构。


学习数据结构,如果说有门槛的话,我认为就是熟练掌握一门编程语言,就这一个硬性门槛。


数据结构其实从头到尾就讲明白一件事,如何高效地存储数据。数据结构里汇总了各种各样存储数据的方案,从最简单的线性表,到栈、队列,再到树,最后到图。


学习数据结构,直接找一套书籍或者教程,从头看,先学最简单的线性表。需要注意的是,数据结构的学习是一个由易到难的过程,越是简单的知识,越要好好学,掌握的越扎实,越有利于后面的学习。


分享给大家一个学习数据结构的小窍门,就是边学边拿笔把数据的存储状态画出来,这样有助于自己想清楚数据是如何存储的,提高学习的效率。


举个简单的例子,学习链表,就可以画一个类似下面的图:

1.jpg


4

帖子

5

回复

8

积分
最后登录:
2025-04-05 17:26
注册时间:
2024-03-30 12:14
6 楼
  发表于:2025-04-05 19:15:36|查看用户信息

写好最好的办法就是从最简单的单字符串字节学起,然后结合列表、字典、集合对常用的数据进行整合。

后面的结构其实都是这些基础结构的堆叠和组合,如果C和C++的话,还需要理解的含义,包括指针对应的数据结构。

共 1/1 页

0

帖子

0

回复

0

积分
最后登录:
1970-01-01 08:00
注册时间:
1970-01-01 08:00
会员必须登录才能发布帖子! 点击登录