分类：电脑/网络-程序设计
问题：请问：学习数据结构之前必须先学习《计算机软件基础》《离散数学》吗? 
请问：学习数据结构之前必须先学习《计算机基础》《离散数学》吗？已经有c语言基础，可以直接学吗？
回答：不同意楼上所有人的说法，因为他们似乎不太重视数据结构。首先回答你的问题，我认为学习之前应该学习离散数学和线性代数。这两门课中就有一些数据结构的算法，比如哈希函数、最短路进算法等等，此外还有一些运算的技巧，比如矩阵的运算技巧和存储技巧。当你对离散和线性代数有一定基础后，接触数据结构课程就比较容易了。我们当初学习的是高等教育出版社的用C语言描述的数据结构，基本上前几章在C中讲过，但必须要仔细听，因为他渗透了更多的、更有变化的算法，比如链表的各种操作和类型，尤其注意的是双向循环链表、十字链表。此外队列要注意循环队列。第二个重点就是树，首先要知道书的存储结构和逻辑结构是怎样的，然后要重点了解树的各种遍历，因为不同遍历形成不同种（前，中，后）缀表达式。此外哈夫曼树的建立，哈夫曼编码解码也是很重要的，因为他是当今数据压缩的最经典的算法之一。然后就是排序和查找算法，大多数用到树的知识，一定要记住排序和查找算法，因为他几乎是程序的灵魂模块。各算法的事件复杂度和稳定性的比较也要当作重点。总之学习数据结构不要看他的用什么语言描述，应该看他的实质，太在乎C中的指针的操作只会影响你的学习。