如何学好数据结构课程
答案:2 悬赏:40 手机版
解决时间 2021-12-29 13:02
- 提问者网友:川水往事
- 2021-12-29 06:03
如何学好数据结构课程
最佳答案
- 五星知识达人网友:舍身薄凉客
- 2021-12-29 07:35
问题一:怎样学习数据结构 很多计算机专业的同学对于大学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程序设计语言.而对于喜欢其他语言的同学完全可以自己通过学习数据结构后用自己熟悉的程序设计语言去完成程序化的描述. 我自己过去......余下全文>>问题三:如何学习数据结构 数据结构的本质就在于:如何将现实世界中各种各样的数据放入到内存中,并且如何在内存中操作这些数据,如何评价这些存储方案和操作方法。
数据结构难学吗?是难学。
为什么难学?一开始上来就讲空间复杂度、时间复杂度,就讲抽象数据,当然难学了。
1、生活、生产等现实世界的数据有各种各样的组成形式。例如一个课程的所有学生的成绩(一组数据),一个班全部学生的所有课程的成绩(一张表)、一个单位的人员结构(树)等等。
2、这些数据都要先加载到内存中,再送到CPU中进行计算。
3、内存的最基本单位叫做存储单元,一个字节(不讨论理论中的、个别情况的)。存储单元相当于一个空盒子,可以放置数据。为了便于管理,盒子会给一个编号,当然存储单元也会有编号,其实就是地址。理论上地址的方案可以有多种(计算机组成原理和操作系统的任务),不过对于程序员来说,这些都跟我们无关,为了简单起见,我们把存储单元的编号(地址)都编成0、1、2、3、4,......这样的,于是这些编号或地址的取值范围,我们就称地址空间。这个地址空间,跟一维坐标轴一样,所以是一维线性空间。
4、很明显,数据就是一个个放入到这些存储单元中,就象我们把一个单位的物品放入盒子一样。现在,假设一个盒子只能装入一个单位的物品。因而,一个存储单元也只能放入一个单位的数据。
5、接下来,假设说,我们有很多很多的空盒子(X个)。有一天,我们要将若干单位物品(N个)放入盒子中,那么我们可以在一个盒子放入一个单位物品。依此类推,我们可以在一个存储单元中放置一个单位的数据。
6、再接下来,我们有两种放置方案:一个挨一个地连续地放置物品;当然,也可以不连续地放置物品。依此类推,在内存当中放置数据,也有两种方案,连续地放置数据,或者不连续地放置数据。为什么会有不连续的放置方案呢?原因很简单,一个主要的原因是,内存的空间利用率高,碎片少(操作系统的存储管理的知识,且不用理会),删除旧有的数据很容易(这个是数据结构的内容)。
7、现在,可以把这两个将数据放入到存储单元的方案叫做物理存储。对连续物理存储方案来说,事情比较好办,通过编号(索引、下标)就可以找到物品,对于不连续的方案,那么我们就要在一个物品上面标记下一个物品的位置,这个标记就是下一个物品的地址(指针)。当然,在计算机中,指针的记录本身也要占用内存的存储单元,所以我们在c语言中用结构体把数据和指针组织成为一个单位。通过这个指向关系,我们可以在不连续的放置方案中依次地查找我们所需要的东西(物品或数据)。
8、接下来,就象我们经常进行从盒子当中查询物品、取用物品或增加物品等操作一样,我们也要进行从内存当中查询数据、取用(删除)数据或增加数据等操作。那么,对于不同的物理存储方案来说,其方法是不一样的。这个想一想,我们如何对付真实的物品,我们就如何对付内存中的数据。这就是数据的物理存储方案的数据操作。
9、好了,搞懂这些,字符串之类的知识点就不难了。
10、记住一点,只有两种物理存储结构:连续的和不连续的,因为内存的存储单元的地址(编号)是0、1、2、3......(一维地址空间、或者线性地址空间)。
11、是不是只有物理存储结构(方案)就可以了呢?在第1条中说过,现实当中的数据是有各种各样的结构的。而在第10条,我们强调了物理放置方案只有2种:连续的和不连续的。
12、于是就产生一个问题,如何将现实世界当中的关系各种各样的数据放入到内存之中。
13、解决第12条中的问题,我们可以分两步走,第1步是将现实世界的数据组织成为逻辑结构,第2步再把逻辑结构的数据映射到物理......余下全文>>问题四:如何学好数据结构 数据结构很重要,在学习计算机类相关知识中占有很大成分,它注重的是思想,想法。。
数据结构所讲的就是一些算法,核心算法,讲解那些问题的解决核心算法,学习数据结构主要帮助你去更好的锻炼你的思考能力,看到一个编程题,如何去想,如何去构思,怎样才能解决。。考研过程中数据结构也是一个重要的考察对象。。
总之,它很重要,建议你学号链表和线性表那一章,那是整个数据结构的基础之基础,后面的学习基本上都是在那上面展开的。
在学习过程中,要多想,多思考,多看书,要用心去体悟书本的那些算法,去理解那些核心思想,去把握,去学习,去掌握。。学习久了,就会有感觉的,边学边练习也是不错的做法,相信你会学好的。。。多思多练。。。问题五:如何才能学好数据结构这门课程, 上课好好听老师讲,再找本习题集做一下,可以考高分 自己把书上的练习题自己写代码,可以提高自己的编程能力.问题六:初学者如何学好数据结构这门课程 数据结构没有多少东西,就那几种结构,慢慢领悟,不难。买本好资料,配合着做。问题七:如何学好《数据结构》这门课程? 认真上课 认真听讲 这科不难的问题八:怎么学数据结构???学好要花多长时间 我最近也在学,估计每天多花点时间也就十几天的事情吧问题九:数据结构这门课程学了有什么用啊? 为以后学习数据结构打基础.属于计算机专业的基础理论课.
数据结构是计算机专业的重要基础课程,也是该专业的核心课程之一,它是一门集技术性、理论性和实践性于一体的课程。
介绍抽象数据类型和基本数据结构,阐述各种数据结构内在的逻辑关系,讨论各种数据结构在计算机中的存储表示,给出在各种数据结构上的基本运算及算法实现。内容包括:数据结构概述、线性表、栈和队列、串、多维数纽与广义表、二叉树与树、图、查找表、内部排序、外部排序、文件和数据结构程序设计方法。书中使用类C语言作为算法描述语言,且所有算法都可以在任何一种C语言的开发环境中实现。问题十:学习《数据结构》课程的主要目的是什么 学了以后你才能海现实世界中的问题,抽象成计算机能够表示的问题,然后利用计算机求解。现实中的事情抽象出来无非是三种数据结构:线性结构、树、图。
看见大家总在谈论数据结构重要性,可使自己学习却总也找不到合适的方法.
下面我和大家分享一下我过去一年多以来学习和应用数据结构方面一些经验.
内容都是来自作者本人的一些经历和体验,希望对于大家学习数据结构有引导作用。
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程序设计语言.而对于喜欢其他语言的同学完全可以自己通过学习数据结构后用自己熟悉的程序设计语言去完成程序化的描述. 我自己过去......余下全文>>问题三:如何学习数据结构 数据结构的本质就在于:如何将现实世界中各种各样的数据放入到内存中,并且如何在内存中操作这些数据,如何评价这些存储方案和操作方法。
数据结构难学吗?是难学。
为什么难学?一开始上来就讲空间复杂度、时间复杂度,就讲抽象数据,当然难学了。
1、生活、生产等现实世界的数据有各种各样的组成形式。例如一个课程的所有学生的成绩(一组数据),一个班全部学生的所有课程的成绩(一张表)、一个单位的人员结构(树)等等。
2、这些数据都要先加载到内存中,再送到CPU中进行计算。
3、内存的最基本单位叫做存储单元,一个字节(不讨论理论中的、个别情况的)。存储单元相当于一个空盒子,可以放置数据。为了便于管理,盒子会给一个编号,当然存储单元也会有编号,其实就是地址。理论上地址的方案可以有多种(计算机组成原理和操作系统的任务),不过对于程序员来说,这些都跟我们无关,为了简单起见,我们把存储单元的编号(地址)都编成0、1、2、3、4,......这样的,于是这些编号或地址的取值范围,我们就称地址空间。这个地址空间,跟一维坐标轴一样,所以是一维线性空间。
4、很明显,数据就是一个个放入到这些存储单元中,就象我们把一个单位的物品放入盒子一样。现在,假设一个盒子只能装入一个单位的物品。因而,一个存储单元也只能放入一个单位的数据。
5、接下来,假设说,我们有很多很多的空盒子(X个)。有一天,我们要将若干单位物品(N个)放入盒子中,那么我们可以在一个盒子放入一个单位物品。依此类推,我们可以在一个存储单元中放置一个单位的数据。
6、再接下来,我们有两种放置方案:一个挨一个地连续地放置物品;当然,也可以不连续地放置物品。依此类推,在内存当中放置数据,也有两种方案,连续地放置数据,或者不连续地放置数据。为什么会有不连续的放置方案呢?原因很简单,一个主要的原因是,内存的空间利用率高,碎片少(操作系统的存储管理的知识,且不用理会),删除旧有的数据很容易(这个是数据结构的内容)。
7、现在,可以把这两个将数据放入到存储单元的方案叫做物理存储。对连续物理存储方案来说,事情比较好办,通过编号(索引、下标)就可以找到物品,对于不连续的方案,那么我们就要在一个物品上面标记下一个物品的位置,这个标记就是下一个物品的地址(指针)。当然,在计算机中,指针的记录本身也要占用内存的存储单元,所以我们在c语言中用结构体把数据和指针组织成为一个单位。通过这个指向关系,我们可以在不连续的放置方案中依次地查找我们所需要的东西(物品或数据)。
8、接下来,就象我们经常进行从盒子当中查询物品、取用物品或增加物品等操作一样,我们也要进行从内存当中查询数据、取用(删除)数据或增加数据等操作。那么,对于不同的物理存储方案来说,其方法是不一样的。这个想一想,我们如何对付真实的物品,我们就如何对付内存中的数据。这就是数据的物理存储方案的数据操作。
9、好了,搞懂这些,字符串之类的知识点就不难了。
10、记住一点,只有两种物理存储结构:连续的和不连续的,因为内存的存储单元的地址(编号)是0、1、2、3......(一维地址空间、或者线性地址空间)。
11、是不是只有物理存储结构(方案)就可以了呢?在第1条中说过,现实当中的数据是有各种各样的结构的。而在第10条,我们强调了物理放置方案只有2种:连续的和不连续的。
12、于是就产生一个问题,如何将现实世界当中的关系各种各样的数据放入到内存之中。
13、解决第12条中的问题,我们可以分两步走,第1步是将现实世界的数据组织成为逻辑结构,第2步再把逻辑结构的数据映射到物理......余下全文>>问题四:如何学好数据结构 数据结构很重要,在学习计算机类相关知识中占有很大成分,它注重的是思想,想法。。
数据结构所讲的就是一些算法,核心算法,讲解那些问题的解决核心算法,学习数据结构主要帮助你去更好的锻炼你的思考能力,看到一个编程题,如何去想,如何去构思,怎样才能解决。。考研过程中数据结构也是一个重要的考察对象。。
总之,它很重要,建议你学号链表和线性表那一章,那是整个数据结构的基础之基础,后面的学习基本上都是在那上面展开的。
在学习过程中,要多想,多思考,多看书,要用心去体悟书本的那些算法,去理解那些核心思想,去把握,去学习,去掌握。。学习久了,就会有感觉的,边学边练习也是不错的做法,相信你会学好的。。。多思多练。。。问题五:如何才能学好数据结构这门课程, 上课好好听老师讲,再找本习题集做一下,可以考高分 自己把书上的练习题自己写代码,可以提高自己的编程能力.问题六:初学者如何学好数据结构这门课程 数据结构没有多少东西,就那几种结构,慢慢领悟,不难。买本好资料,配合着做。问题七:如何学好《数据结构》这门课程? 认真上课 认真听讲 这科不难的问题八:怎么学数据结构???学好要花多长时间 我最近也在学,估计每天多花点时间也就十几天的事情吧问题九:数据结构这门课程学了有什么用啊? 为以后学习数据结构打基础.属于计算机专业的基础理论课.
数据结构是计算机专业的重要基础课程,也是该专业的核心课程之一,它是一门集技术性、理论性和实践性于一体的课程。
介绍抽象数据类型和基本数据结构,阐述各种数据结构内在的逻辑关系,讨论各种数据结构在计算机中的存储表示,给出在各种数据结构上的基本运算及算法实现。内容包括:数据结构概述、线性表、栈和队列、串、多维数纽与广义表、二叉树与树、图、查找表、内部排序、外部排序、文件和数据结构程序设计方法。书中使用类C语言作为算法描述语言,且所有算法都可以在任何一种C语言的开发环境中实现。问题十:学习《数据结构》课程的主要目的是什么 学了以后你才能海现实世界中的问题,抽象成计算机能够表示的问题,然后利用计算机求解。现实中的事情抽象出来无非是三种数据结构:线性结构、树、图。
全部回答
- 1楼网友:思契十里
- 2021-12-29 08:29
我明天再问问老师,叫他解释下这个问题
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯