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