如何学习数据结构
1个回答
展开全部
写数据结构代码编程了学习C语言,是大多数初学者的经验,其实有办法可以避免的。
多想> 多看 > 多写字 > 多动键盘
养成好的编程习惯很重要。
做任何工作之前,要把自己的思路整理清楚 参考别人的相关工作经验,针对自己的需求做分析 把思路落实到纸张上 采用自顶向下的编程方式,先把你的个函数的功能,入口和出口描述清楚 每个函数内部的执行流程,都要注释好。 最后再分段逐步编码。
这样可以有效的避免大多数的错误发生。 即便出现错误,也很容易定位到问题的所在。 不知道大家是怎样看待数据结构这门课的,有多少人觉得数据结构很难呢?我知道还是有一些同学这样觉得的,有时候我跟我的朋友讲要怎样学,讲了一大堆以后,他就向我抱怨:我以前c++都没有学好,数据结构更学不好了,这哪跟哪的话啊,数据结构与c++没有什么关系,我想假如抱有这样的心态,自己就不相信自己,那是不可能学好的,然后那些觉得数据结构很难的同学,我想他们应该会很看重数据结构的吧,然后就一天到晚捧着一本数据结构,这样不会觉得很累吗?而且因为觉得很难,就容易不相信自己,学的效率也不会很好,个人认为数据结构很好学,很容易学,或许这有点妄自菲薄吧,但是因为我觉得很容易,当然就会觉得自己没问题,学得很轻松,效果也还可以。大家都是从高考走过来的,应该知道心态的重要性吧,两种不同的心态,完全就是两种不同的效果。学了这么久数据结构了,我们到底在学些什么呢?不知道大家有没有想过,那现在我们现在来归纳一下我们学习的内容吧,其实学到现在我们也就学了几种普通的数据结构,象二叉树,树,图,还有排序的问题,前面的线性表和字符串也就是一些概念,当然还有一个很重要的KMP算法,然后在每种数据结构中我们也就是学到了若干处理的算法,我想真正数起来也就是几十个算法吧。学习数据结构也就是要掌握这几十种算法,多简单。至于如何掌握每个算法呢,我想就是多看看书,重要的是能够理解。 如果真的想学好数据结构的话,最好是能够自己思考问题,不要刚想了一会就觉得做不出来,然后就去问其他人。其实张老师给我们的作业还是基于我们的水平的,我绝对相信我们自己能够独自想出算法,虽有可能会比较长时间吧,但是这样肯定会比问其他人学到更多的东西。当然我并不是说不要问同学,有时候就是脑筋转不过来,一问别人就懂了,当然问了别人不能只是我知道了这个算法,还应该去想如何思考才能得到这个算法,这样水平会提高很多。
很多计算机专业的同学对于大学2年级开设的数据结构课程很是头痛. 看见大家总在谈论数据结构重要性,可使自己学习却总也找不到合适的方法. 下面我和大家分享一下我过去一年多以来学习和应用数据结构方面一些经验. 内容都是来自作者本人的一些经历和体验,希望对于大家学习数据结构有引导作用。 1什么是数据结构 数据结构从文字上面来看,为数据和结构两部分。这样就很容易联系到数据结构的本质是一种对于数据结构花的知识。补充一个知识点,数据结构本质和离散数学有很密切的关系。离散数学是处理的是离散(非连续的)的数据,站在数据结构的观点上来看,也可以理解是一种非连续数据的结构。 2数据结构和程序设计语言 数据结构和程序设计语言本身没有任何联系,唯一有的关系就实用程序语言去描述数据结构。 因为数据结构是一种抽象数据,通过程序设计语言可以将在计算机中进行实现。今天大学里数据结构课程常用来描述数据结构的语言有C程序设计语言,C 程序设计语言和JAVA程序设计语言.而对于喜欢其他语言的同学完全可以自己通过学习数据结构后用自己熟悉的程序设计语言去完成程序化的描述. 我自己过去很喜欢C#程序设计语言,自己用C#程序设计对于一些数据结构进行了实现. 大家可以通过访问CSTC我的专栏看到两篇C#描述的数据结构 3数据结构学习的技巧 3.1学习数据结构的概念后对于抽象数据类型的设计参考C STL标准库中容器的设计.这样对于无论是数据结构的学习还有程序设计接口能力上都会有很大的提高. 3.2对于数据结构课程中很多时候都不太重视的顺序(数组)做存储的数据结构,希望大家还是要多留意这快的知识.对于有些场合需要考虑时间换空间的情况下需要考虑顺序存储结构. 3.3?数据结构学习一定要自己独立完成代码实现,虽然有时候你理解内容了,但是实现上面还是会愈要很多困难的,解决这些困难会帮助你提高程序设计的能力的. 推荐一本习题集 C 描述的数据结构的习题集(英文版) 数据结构是计算机专业最重要最基础的一门课,对于有过编程经验的人,结合自己的编程体会去悟它的思想;对于初学者,捡一种自己最熟悉的语言去分析它总之千万不要陷在语言的细节上要高屋建瓴的去领会数据结构的思想。而且我觉得随着编程经历的丰富对它的体会越深入,最初接触是对一些思想可能只是生硬的记忆,随着学习的深入逐渐领悟了很多。奉劝孔孔不要灰心,对于实在弄不懂的东东,就先记住,应付过考试再说。
你用的是什么书呀?我们现在也在学数据结构呀,虽然是刚刚开始学习不久,我觉得那个数据结构要多结合现实来理解吧。真的要自己动手去把书里面的习题和例子都画画图才好,就像我们书里面那个关于红绿灯设置的问题,单单靠看是看不懂的,然后当我自己用以前所学过的知识,用集合的方法,把那些可以一起通行的方向都归为了一类之后,我感觉那个思绪变得很清晰,只有当你的思路理清了以后,才可以更好地理解。还有,关于数据结构怎么学这个问题,也许我的学习方法不是最好的,但是我还是想和你分享一下下吧,就是一开始不是有些线性表,链表什么的吗?那些不知道你能懂吗?我在看书的时候,就正如顺序表,我会把这个顺序表想象成一个现实中的队伍,正如以前做操时排队那样,基本的添加和删除等操作都可以想象成老师对这个队伍的操作,就正如添加就是在一个队伍的某一个地方插入一个人这样。不过这个只是一个方法而已,顺序表其实也不用什么这样的想象吧,不过也许以后得学习也可以参照我的这个方法吧,联系现实。。不过还是得靠自己去亲手画画书里面的那些结构等等的东西,当你自己可以画出来,其实你的思路就会清晰了,思路清晰了,学起来会好很多的。。 加油!!
多想> 多看 > 多写字 > 多动键盘
养成好的编程习惯很重要。
做任何工作之前,要把自己的思路整理清楚 参考别人的相关工作经验,针对自己的需求做分析 把思路落实到纸张上 采用自顶向下的编程方式,先把你的个函数的功能,入口和出口描述清楚 每个函数内部的执行流程,都要注释好。 最后再分段逐步编码。
这样可以有效的避免大多数的错误发生。 即便出现错误,也很容易定位到问题的所在。 不知道大家是怎样看待数据结构这门课的,有多少人觉得数据结构很难呢?我知道还是有一些同学这样觉得的,有时候我跟我的朋友讲要怎样学,讲了一大堆以后,他就向我抱怨:我以前c++都没有学好,数据结构更学不好了,这哪跟哪的话啊,数据结构与c++没有什么关系,我想假如抱有这样的心态,自己就不相信自己,那是不可能学好的,然后那些觉得数据结构很难的同学,我想他们应该会很看重数据结构的吧,然后就一天到晚捧着一本数据结构,这样不会觉得很累吗?而且因为觉得很难,就容易不相信自己,学的效率也不会很好,个人认为数据结构很好学,很容易学,或许这有点妄自菲薄吧,但是因为我觉得很容易,当然就会觉得自己没问题,学得很轻松,效果也还可以。大家都是从高考走过来的,应该知道心态的重要性吧,两种不同的心态,完全就是两种不同的效果。学了这么久数据结构了,我们到底在学些什么呢?不知道大家有没有想过,那现在我们现在来归纳一下我们学习的内容吧,其实学到现在我们也就学了几种普通的数据结构,象二叉树,树,图,还有排序的问题,前面的线性表和字符串也就是一些概念,当然还有一个很重要的KMP算法,然后在每种数据结构中我们也就是学到了若干处理的算法,我想真正数起来也就是几十个算法吧。学习数据结构也就是要掌握这几十种算法,多简单。至于如何掌握每个算法呢,我想就是多看看书,重要的是能够理解。 如果真的想学好数据结构的话,最好是能够自己思考问题,不要刚想了一会就觉得做不出来,然后就去问其他人。其实张老师给我们的作业还是基于我们的水平的,我绝对相信我们自己能够独自想出算法,虽有可能会比较长时间吧,但是这样肯定会比问其他人学到更多的东西。当然我并不是说不要问同学,有时候就是脑筋转不过来,一问别人就懂了,当然问了别人不能只是我知道了这个算法,还应该去想如何思考才能得到这个算法,这样水平会提高很多。
很多计算机专业的同学对于大学2年级开设的数据结构课程很是头痛. 看见大家总在谈论数据结构重要性,可使自己学习却总也找不到合适的方法. 下面我和大家分享一下我过去一年多以来学习和应用数据结构方面一些经验. 内容都是来自作者本人的一些经历和体验,希望对于大家学习数据结构有引导作用。 1什么是数据结构 数据结构从文字上面来看,为数据和结构两部分。这样就很容易联系到数据结构的本质是一种对于数据结构花的知识。补充一个知识点,数据结构本质和离散数学有很密切的关系。离散数学是处理的是离散(非连续的)的数据,站在数据结构的观点上来看,也可以理解是一种非连续数据的结构。 2数据结构和程序设计语言 数据结构和程序设计语言本身没有任何联系,唯一有的关系就实用程序语言去描述数据结构。 因为数据结构是一种抽象数据,通过程序设计语言可以将在计算机中进行实现。今天大学里数据结构课程常用来描述数据结构的语言有C程序设计语言,C 程序设计语言和JAVA程序设计语言.而对于喜欢其他语言的同学完全可以自己通过学习数据结构后用自己熟悉的程序设计语言去完成程序化的描述. 我自己过去很喜欢C#程序设计语言,自己用C#程序设计对于一些数据结构进行了实现. 大家可以通过访问CSTC我的专栏看到两篇C#描述的数据结构 3数据结构学习的技巧 3.1学习数据结构的概念后对于抽象数据类型的设计参考C STL标准库中容器的设计.这样对于无论是数据结构的学习还有程序设计接口能力上都会有很大的提高. 3.2对于数据结构课程中很多时候都不太重视的顺序(数组)做存储的数据结构,希望大家还是要多留意这快的知识.对于有些场合需要考虑时间换空间的情况下需要考虑顺序存储结构. 3.3?数据结构学习一定要自己独立完成代码实现,虽然有时候你理解内容了,但是实现上面还是会愈要很多困难的,解决这些困难会帮助你提高程序设计的能力的. 推荐一本习题集 C 描述的数据结构的习题集(英文版) 数据结构是计算机专业最重要最基础的一门课,对于有过编程经验的人,结合自己的编程体会去悟它的思想;对于初学者,捡一种自己最熟悉的语言去分析它总之千万不要陷在语言的细节上要高屋建瓴的去领会数据结构的思想。而且我觉得随着编程经历的丰富对它的体会越深入,最初接触是对一些思想可能只是生硬的记忆,随着学习的深入逐渐领悟了很多。奉劝孔孔不要灰心,对于实在弄不懂的东东,就先记住,应付过考试再说。
你用的是什么书呀?我们现在也在学数据结构呀,虽然是刚刚开始学习不久,我觉得那个数据结构要多结合现实来理解吧。真的要自己动手去把书里面的习题和例子都画画图才好,就像我们书里面那个关于红绿灯设置的问题,单单靠看是看不懂的,然后当我自己用以前所学过的知识,用集合的方法,把那些可以一起通行的方向都归为了一类之后,我感觉那个思绪变得很清晰,只有当你的思路理清了以后,才可以更好地理解。还有,关于数据结构怎么学这个问题,也许我的学习方法不是最好的,但是我还是想和你分享一下下吧,就是一开始不是有些线性表,链表什么的吗?那些不知道你能懂吗?我在看书的时候,就正如顺序表,我会把这个顺序表想象成一个现实中的队伍,正如以前做操时排队那样,基本的添加和删除等操作都可以想象成老师对这个队伍的操作,就正如添加就是在一个队伍的某一个地方插入一个人这样。不过这个只是一个方法而已,顺序表其实也不用什么这样的想象吧,不过也许以后得学习也可以参照我的这个方法吧,联系现实。。不过还是得靠自己去亲手画画书里面的那些结构等等的东西,当你自己可以画出来,其实你的思路就会清晰了,思路清晰了,学起来会好很多的。。 加油!!
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询