如果您想成为Java/C++程序员,是否必须了解数据结构?

Ser*_*ity 15 c++ java structure

所以我真的需要了解它们吗?是不是有一种有趣的方式来了解堆栈,链表,堆等?我发现这是一个无聊的主题.

**在发布此问题时,它显示了一些警告.我不允许发布这样的问题吗?管理员请澄清,我将删除它:/

警告::您提出的问题似乎是主观的,可能会被关闭.

好吧..我明白了什么是最好的学习方法?我推荐什么书?什么网站?

tza*_*man 62

如果你想成为一名程序员,那么学习数据结构是必须的.如果你不理解至少基本结构(数组,链表,堆栈,队列)的行为,用途和运行时复杂性('big-O')之类的东西,那么数据结构就是你的佼佼者. ,树(二进制/ n-ary,自平衡varietes),哈希表,堆,图)和运行它们的算法(插入/定位/删除),你不知道哪个适合使用什么情况.

每个行业都有自己的工具; 这些是我们的.数据结构是您将要学习的几乎所有算法的最基本的基础.除非您想成为货运狂热程序员,否则您需要了解它们的工作原理.

是否有有趣的方法来了解它们完全是一个单独的问题...... :)


Gnu*_*iff 8

我甚至会说,大多数编程围绕着操纵数据结构,它毕竟是计算的基础:你得到一些数据,你处理它,你可能给出输出.所有数据通常都存在于数据结构中,选择不合适的结构会对项目的影响越大.


Jor*_*ans 7

随着您获得更多经验,您会发现算法和数据结构对于您的日常开发非常宝贵,而且实际上非常有趣.

通过了解它们,您将学习:

  • 哪种数据结构适合哪种上下文,即何时使用单链表,何时使用堆栈,何时使用队列,何时使用树
  • 哪种算法适合于哪种目的,例如树深度优先搜索或广度优先搜索.
  • 算法的空间和时间复杂性,例如为什么快速排序有时是最好的解决方案,有时候是heapsort.
  • 总的来说,它将教你计算机科学的起点和基础,即使你再也不必实现一个堆栈,你就会知道它的思想和考虑.如果您必须实现自己的OWN数据结构(并且很可能会经常),您将知道该做什么和不该做什么.