一个计算机科学与技术专业学生的困惑
做为一个在校本科生,对C++有着浓厚兴趣,但是大二开始,开始学习数据结构,遇到很大阻力:
不知道C++和数据结构的联系。我自己在看《C++程序设计》(第8版)---Walter Savitch著,周靖 译 一书,写了好几章的编程项目了,但之前涉及到的编程所需要的思路和要求和数据结构课上的要求完全不一样。老师要求用抽象数据类型经行编写,但是我翻遍《C++程序设计》(第8版)一书,虽然有涉及到抽象数据类型,但是总的编程思路和数据结构课上的思路并不一样。C++的类为什么和数据结构上用到的类差别那么大,现在我完全不明白。用C++的思维我可以编写出要求比较复杂的项目,但是用数据结构的思维我却连写一个十分简单的模版函数都费力。现在我学C++和数据结构几乎是分开在学,看不到两者的联系,让我很是困惑。
求助各位大神:
1、希望能详细地告诉我数据结构和C++的联系
2、希望能指导一下数据结构应该怎样学
3、希望各位能告诉我,作为一个大二的学生,我编程的各项能力应该达到一个什么样的水平,应该去做些什么样的编程项目
谢谢给位了!!!
[解决办法]
[解决办法]
我本不想说什么的,但瞄到那个“抽象数据类型进行编写”我就不得不说点什么了。“抽象数据类型进行编写”这样的字眼是为国家精品教材量身定做的,处处抽象,抽象顶不了什么用,还让人费解,直接用C语言举一个例子多简单多直观,国家级精品看不上眼,特喜欢抽象。你问数据结构和C++有什么关系?首先应该理解数据结构这门课是干嘛的,它当然很重要。这门课会对编程中常用的一些数据结构进行介绍,介绍它们的使用方法、技巧等。补充下,一个结构体可以当成一个数据结构,一个数组是一个数据结构,链表是一种数据结构、栈是一种数据结构、队列是一种数据结构、树是一种数据结构等等等等。数据结构这东西应该能意会了,泛泛的讲就是数据按照某种策略组织起来构成一个整体。数据结构这门课会首先应该讲数组的使用方法,并且提出线性表的概念,链表也属于线性表,并且会做延伸,延生出的那家伙很BT,但是用到的地方不多所以我忘了。让后会讲栈的使用,队列的使用。对于一个会编程的人来说,数组链表压根就不用听就会,队列栈可能以前没接触到有点陌生,但是一旦知道了它的工作方式自己眯着眼就能实现。但是也得看看书,书上的C代码都挺精炼的值得看看。树以后的内容就真正体现了这门课的价值,树的构造、树的遍历,图的构造、无向图的最短路径等等问题,前人都已经研究好了,咱不用浪费脑筋去想,理解并学会运用就行。好了,数据结构和C++的关系想必你也有理解了,实际上应该说是和编程关系。以常见的学生信息管理系统为例,学生信息数据是使用数组存储还是链表存储呢?这便是数据结构的选择了,数组方便查找,链表方便增删。这个权衡不会因为使用的C++或者Java而改变。
编程项目就先算了吧,你要学的东西多了去了,大二能把链表用得滚瓜烂熟我觉得就不错了。