数据结构该怎么学啊?

我的目的:希望能将数据结构的思想运用于实践。

我的状况:我现在同时在学C#,数据结构是C版的,一直以为最好的学习方法就是尝试用C#去实现数据结构。

我遇到的问题:可是用C#实现C版的数据结构感觉好别扭,我是不是该换本C#版的书,还是我这种学习方法根本不对?还是我应该先回过头把C复习了,反正考研也考C。

求前辈指点。

数据结构学好并不难,关键是多上机操作,一个算法你看上去很简单,其实里面的小细节很多,没有自己编译连接运行,有些问题你可能发现不了。其实对于语言,真的无所谓啦,用C也好,用C#也好,都能实现,关键是算法思想的理解和运用。
我们老师说过一句话:编程语言不懂,你可以花一个月的时间把那门语言学的滚瓜烂熟,然后你就可以写程序了;而要是你编程思想不理解,哪怕你会一千种语言,也写不出好的程序。
数据结构关键是学习算法的思路。慢慢学吧,肯定能行的!
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-04
如果你决定考研的话,建议把C学好。如果你打算工作,可以学学C#。
不知道你为什么一开始就选择了C#。还是慢慢来吧。好运!
第2个回答  2018-12-29
数据结构学习心得
本文链接:http://www.54manong.com/?id=10
转载请注明出处,谢谢
山不在高,有仙则灵;水不在深,有龙则灵;要学好数据结构,有数据结构学习网才行!
首先,恭喜您发现了这个网站:一个神奇的学习数据结构的网站!
其次,感谢您打开这个网页阅读这篇文章,实在太感谢啦!
再次,正在激动中......哽咽了。还是让我先来介绍一下我自己吧:
我就是江湖上人见人爱、花见花开、车见车载,人称上天入地、无所不能、英俊潇洒、风流倜傥、玉树临风、学富五车、高大威猛、拥有千万粉丝、迷倒万千少女,号称一朵梨花压海棠的玉面小黄驴,帅到掉渣!一个见过我的女孩儿曾对我说:“如果世界只剩下十分钟的话,我会和你一同回忆你帅时的样子;如果世界只剩下三分钟的话,你要再摆一下你最最最帅的造型给我看;如果世界只剩下一分钟的话,我会对你对你说60次—小黄驴,你真帅!”还有一个女孩儿每天早晨都站在教室门口,痴痴地望着我,呆呆状喃道:“世间本无沙漠,只是我每看到一次你帅的样子,天上便会落下一粒沙,从此便有了撒哈拉。”唯心主义说:“我说你帅,你就是帅。”唯物主义说:“因为你帅,所以我说你帅。”总而言之一句话—我,就是帅。一个不帅驴子的标志是他愿意为自己的不帅英勇地死去,一个帅气驴子的标志是他愿意为自己的帅而卑怆地活着,所以,至今我还为自己的帅坚强的活着。本人没什么优点,唯一的优点就是没有缺点;本人基本全是缺点,最大的缺点就是只有优点;如果靓仔是一种罪,我已经罪犯滔天;如果有型是一种错,我已经一错再错;如果聪明要受惩罚,我岂不是要千刀万剐;如果谦虚都要受折磨,我又怎能逃得过?
吹了这么半天驴掰,相信大家一定已经对我有好感了,下面该说点严肃的事情了:
天将降大任于斯人也:据说,我出生时,天空的北方,出现祥云一片,渐渐由远至近,飘到我家房顶后,幻化成几个大字:“我是码农”。在接下来的若干年中,我一直在驴不停蹄地努力打造这个人类历史上、整个宇宙中最经典、最驴掰的可供大家免费学习数据结构的网站,这个网站的出现,是顺应天意的结果,更是历史的必然!
那么,上天为什么委托我建造这个前无古人后无来者、举世无双、屌爆了的网站呢?学习数据结构到底有啥用?数据结构到底该咋学?
数据结构是计算机科学与技术专业、计算机信息管理与应用专业,电子商务等专业的基础课,是十分重要的核心课程。所有的计算机系统软件和应用软件都要用到各种类型的数据结构。因此,要想更好地运用计算机来解决实际问题,仅掌握几种计算机程序设计语言是难以应付当前众多复杂的课题。要想有效地使用计算机、充分发挥计算机的性能,还必须学习和掌握好数据结构的有关知识。打好“数据结构”这门课程的扎实基础,对于学习其他专业课程是十分有益的。
对于怎么能学好这门课程,我个人觉得基本上就是上课前看看书、上课时认真听课、下课以后复习复习、当然还有做作业时很认真的去做。根本谈不上什么好方法,不过我还是有一些话要送给大家:
一、打好基本功
不管学习什么,概念是基础,所有的知识框架都是建立在基础概念之上的。所以,第一遍看课本要将概念熟记于心,然后构建知识框架。比如看了一遍书后你至少应该知道数据结构包括线性结构、树形结构、图状结构或网状结构。线性结构包括线性表、栈、队列、串、数组、广义表等,栈和队列是操作受限的线性表,串的数据对象约束为字符集,数组和广义表是对线性表的扩展:表中的数据元素本身也是一个数据结构。除了线性表以外,栈是重点,因为栈和递归紧密相连,递归是程序设计中很重要的一种工具。树状结构中的重点自然是二叉树和哈弗曼树了。对于二叉树的很多操作都是基于对二叉树的遍历,掌握了如何遍历,很多问题也就迎刃而解了,比如对二叉树结点的查找访问、统计二叉树中叶子结点的数目、求二叉树的深度等。哈弗曼编码也有着很广泛的应用。对于图状结构,主要学习图的存储结构及图的遍历。
二、不能看不起自己
“我能行!”
个人觉得这句话非常重要,不知道大家是怎样看待数据结构这门课的,有多少人觉得数据结构很难呢?我知道还是有一些同学这样觉得的,有时候我跟我的朋友讲要怎样学,讲了一大堆以后,他就向我抱怨:我以前c++都没有学好,数据结构更学不好了,这哪跟哪的话啊,数据结构与c++没有什么关系,我想假如抱有这样的心态,自己就不相信自己,那是不可能学好的,那些觉得数据结构很难的同学,我想他们应该会很看重数据结构的吧,然后他们就一天到晚捧着一本数据结构,这样不会觉得很累吗?而且因为觉得很难,就容易不相信自己,学的效率也不会很好,或许这有点太妄自菲薄了吧。个人认为数据结构很好学,很容易学,因为我觉得很容易,当然就会觉得自己没问题,学得很轻松,效果也还可以。大家都是从高考走过来的,应该知道心态的重要性吧,两种不同的心态,完全就是两种不同的效果。学习数据结构我们到底要学些什么呢?不知道大家有没有想过,那现在我们现在来归纳一下我们学习的内容吧,其实我们也就学了几种普通的数据结构,像二叉树,树,图还有排序的问题,前面的线性表和字符串也就是一些概念,当然还有一个很重要的KMP算法,然后在每种数据结构中我们也就是学到了若干处理的算法,我想真正数起来也就是几十个算法吧。学习数据结构也就是要掌握这几十种算法,多简单!至于如何掌握每个算法呢,我想就是多看看书,重要的是能够理解。个人认为,学习的难易程度很大程度上决定于个人的兴趣。把一件事情当做任务去做会很痛苦,当做兴趣去做会很快乐。如果想让自己在学习数据结构的过程中更轻松一些,就应该先培养对这门学科的兴趣。
三、坚持独自完成作业的好习惯
有一些同学总是喜欢先问好别人算法,然后再自己写,虽然这个不算抄袭作业,但自己基本上没有一个思考问题的过程,虽然要理解算法也会要思考很多,但是因为没有自己独立的思考过程,要自己写程序、写算法的时候根本写不出来,所以我想如果真的想学好数据结构的话,最好是能够自己思考问题,不要刚想了一会就觉得做不出来,然后就去问其他人。其实老师给我们的作业大多数还是基于我们的水平的,我绝对相信我们自己能够独自想出算法,虽有可能会比较长时间吧,但是这样肯定会比问其他人学到更多的东西。当然我并不是说不要问同学,有时候就是脑筋转不过来,一问别人就懂了,当然问了别人不能只是我知道了这个算法,还应该去想如何思考才能得到这个算法,这样水平会提高很多。
对算法的学习是学习数据结构的关键。在看课本的过程中,要注重对算法的掌握。对于一个算法,读一遍可能能读懂,但不可能完全领会其中的思想。掌握一个算法,并不是说将算法背过,而是掌握算法的思想。我们需要的是耐心。每看一遍就会有这一遍的收获。读懂算法之后,自己再默写算法,写到不会的地方,看看课本想想自己为什么没有想到。反复练习,直到能顺利写出算法为止。个人认为,这是行之有效的方法。这样,不仅可以更加深入的领会算法思想,还会逐渐发现算法的巧妙之处,从而对数据结构产生兴趣。
四、多动手实验
这个就没有太多理由了,我一直觉得编程是一门熟练科学,多编程,水平肯定会提高,最重要的是能够养成一种感觉,就是对程序对算法的敏感,为什么那些牛人看一个算法一下子就看懂了?而自己要看很久才能弄懂,而且弄懂了过了一阵子又忘记了?其实这个是因为牛人们以前看的程序很多,编得也很多,所以他们有了那种感觉,所以我觉得大家应该多看程序,多写程序,培养自己的感觉。数据结构是实践很强的一门课程,光是“听”和“读”是绝对不够的,必须加强实践。在写算法的过程中,可能会出现很多问题,而不断修改的过程便是学习的过程。在这个过程中,只要全身心的投入了,便会发现很多乐趣。
五、关于复习和考试的一些技巧我想大家应该都有这样的感觉,就是觉得自己什么都掌握了,但是在考试的时候就是会犯晕,有时候一出考场就知道错在哪个了,然后考完以后一对答案,发现其实考得很简单,应该都是自己会做的,这个就是与自己的复习和考试的技巧有关系了。首先就是复习,前面已经说过其实我们学的算法也就是几十个,那么我们的任务也就是理解这几十个算法,复习也就是要加深你的理解。如何理解算法,然后理解到什么程度呢?是能默写出整个算法吗?其实不是这样的,数据结构的考试有它的特点,考过期末考试了,大家应该都发现数据结构其实不要求你把整个算法背出来,它注重考察你的理解,那么怎么考察呢?其实也就是两种方式吧,一种就是用实例,就是给你一个例子,要你用某个算法运行出结果,我想这个期末考试的时候仍然会有很多这样的题目,比如排序那块就很好出这样的题目,要复习这种题目我觉得很简单,就是每个算法都自己用例子去实践一下,以不变应万变,我当年期末复习的时候就是这样去做的,而且考试之前我就觉得排序类的题目就很有可能会考,于是就自己编写各类排序算法运行了一遍。另外一种考察方式就是算法填空和算法改错,可能有一些同学觉得这种题目很难,其实我们首先可以确定这两种题目肯定是与书上算法有关系的,只要理解了书上的算法就可以了,有人觉得看完书以后什么都懂了,而且要默写也默写得出来,其实不是这样的,算法改错和填空主要是考察的细微处,虽然你觉得你默写得出来,那是能够默写出算法的主体部分,很多细微的地方你就会很容易忽略。我想大家考过期末考以后应该都有这种感觉吧?那要怎样解决这种问题呢?我觉得有两种方法,一种就是自己去编程实现,这种方法比较有意义,还能够提高编程水平,另外一种就是用实例分析算法的每句话,我认为这种方法是最有效的。然后还有一种题目,就是最后的写算法的题目,我觉得这种题目还是很好解决的,只要是能够自己做出作业的,基本上都会很容易做出来,这也是为什么我前面觉得平时做作业应该自己独立思考的原因,同时做这种题目千万要小心,尤其是题目简单的时候,那肯定会有一些小地方要考虑清楚,一不小心就会被扣掉很多分,这样很不值。我觉得考试的时候没有太多要讲的,只要复习好了,考试的时候细心一点就可以了,然后就是做一个题目开始就要尽量保证正确,如果觉得留在那里等后面做完了再来检查,这样错误还是很有可能检查不出来,我期末考试的时候就基本上没有检查,因为我做每个题目都是确保正确,用的时间也挺多的,然后也觉得没有检查的必要了。五百年回眸才换来今生的擦肩而过,一万年方得今日在此相聚,我希望大家能记住我的名字—小黄驴,因为我将会和大家成为最好的朋友。我希望大家能记住我的网站—数据结构学习网,因为她将会成为一个让大家可以依赖的学习港湾。我们将风雨无阻一起走过一段美好的时光,祝大家学习愉快!学有所得!

专升本计算机中数据结构应该如何学习?
先把例题中的数据结构应用理解透彻,再找到相近的题目进行练习,最后找一些综合性的应用进行练习。循序渐进的展开练习。最后,在学习过程中,形成一个属于自己的知识体系,在“印象笔记”中单开一个“数据结构”的笔记本,记好笔记,多多复习。在学习过程中,遇到挫折,产生挫败感也不必慌张,这个是必然会发...

考研的数据结构该怎样备考?
掌握基础理论:首先要对数据结构的基本概念、原理有清晰的认识,比如什么是线性表、树、图,以及他们的特性和应用。学习时间复杂度分析:理解不同数据结构和算法的时间复杂度,这对于评估算法效率非常重要。2. 系统学习教材和参考书 选择权威教材:《数据结构》一书通常是大多数高校选用的标准教材,它全面系...

严蔚敏数据结构应该怎么学习。
这样学:1.数据存储的目的是便于数据访问。这个关系就是数据结构 2.算法是计算机解题的模型:输入,输出,顺序执行,跳转,循环,分支,有限步骤。3.人大脑组织数据的方式 有线,树,图三种逻辑结构,而计算机存储采用顺序,链式和两者混合的方式。前者是概念性的东西,后者是物理实现。4.线形结构:算法...

数据结构只有3天时间了,该怎么学
首先得学会C语言~特别得掌握指针,函数,结构体~然后我觉得首先不要太关注里面数据结构用C语言的实现方法。第一步,先把书看一遍,省略里面C语言的具体描述,也就是先不看这些。也不要看那些计算公式,只需要弄清楚里面的概念,比如说线性表,首先只需要弄清楚什么是线性表,最好能给自己列个大纲,比...

怎么样才能学好数据结构啊
说实话,我觉得效率也是很重要的因素。我的方法是:理解性记忆,图片式记忆 不过,我天生就那样,过不了多久就忘了,所以还是要经常磨刀。至于你说的数据库的话,还是要多看看书,听听人家的思路,慢慢来。

数据结构怎么学好呢
问:数据结构的考试重点在那?徐孝凯:请注意以下复习:1.该课程期末复习指导 2.该课程形成性作业 3.该课程实验教材后面附录中的综合练习题 4.该课程中央电大网页上发表的各种题型的综合练习题。问:程序步数的计算要注意些什么?殷人昆:注意掌握每一类型语句的基本程序步数,再学会统计程序中各个语句的...

数据结构到底学什么?
数据结构与算法紧密相连,学习数据结构时,应同时掌握常见算法。若想深入了解两者关系与差异,可阅读相关文章。学习数据结构,旨在掌握各种高效数据存储方法,解决实际开发中的各类数据存储问题。对于对数据结构感兴趣的C语言初学者,推荐一套通俗易懂的数据结构与算法教程,该教程提供完整的C语言程序,非常适合...

怎样学好数据结构
别听他们瞎说,数据结构是一门非常重要的基础课程,但并不是死记硬背就行的,那是应付一般的考试,老师划几道题,背一下及格就行。如果真想学好编程,这门课程是非常有用的。想学好它,主要是掌握C语言中的指针的用法,要知道指针的具体含义,以及它在程序运行时的移动方向。这一点只能靠多练习编程...

C语言 和数据结构该怎么学好?
最笨的方法就是最有效的方法,其实学习C语言的方法就是反复阅读上面的书籍(当然了,为了应付考试的还要背诵一些内容),读一遍不懂可以读第二遍,直到读懂为止。如果你需要捷径,你可以问问Eris研究了多少年的C语言。 4.多做练习 别怕累,每本书都配有大量的练习,这对你理解当章的内容有很大的...

数据结构必须掌握的知识点有哪些
4、数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。5、数据类型:是一个值的集合和定义在该值上的一组操作的总称。6、抽象数据类型:由用户定义的一个数学模型与定义在该模型上的一组操作,它由基本的数据类型构成。7、算法:是对特定问题求解步骤的一种描述,它是指令的有限序列,是...

相似回答