数据结构到底难在哪里?
发布网友
发布时间:2022-04-20 10:45
我来回答
共15个回答
热心网友
时间:2022-04-11 10:57
(1)无法接受它的描述方式。数据结构的描述大多是抽象的形式,我们习惯了使用自然语言表达,难以接受数据结构的抽象表达。不止一个学生问我,书上的“ElemType”到底是什么类型?运行时怎么经常提示错误。它的意思就是“元素类型”,只是这样来描述,你需要什么类型就写什么类型,例如int。这样的表达方式会让不少人感到崩溃。
(2)不知道它有什么用处。尽管很多人学习数据结构,但目的各不相同。有的人是应付考试,有的人是参加算法竞赛需要,而很多人不太清楚学习数据结构有什么用处,迷迷糊糊看书、做题、考试。
(3)体会不到其中的妙处。由于教材、教师等各种因素影响,很多学生没有体会到数据结构处理数据的妙处,经常为学不会而焦头烂额,学习重在体会其中的乐趣,有乐趣才有兴趣,兴趣是最好的驱动力。
热心网友
时间:2022-04-11 12:15
1、知其然,更要知其所以然。 2、数据机构是算法的基础,两者不可割裂。 很多教材,讲数据结构就“链表”“二叉树”的讲数据结构,数据结构是什么样子的,怎么插入怎么删除怎么查找,什么都讲了,但为什么需要这样的数据结构?不讲!或者一笔带过……这是非常非常不负责任的!飞哥那时候学数据结构,这一点是把我坑死了的。很后来很后来,也不知道是哪里东看一句西捡一段,“哦,链表是为了内存管理!”“栈,是方便函数调用”“二叉树就是数据库的索引”……这样点点滴滴的才把这些东西串起来,数据结构的世界才豁然开朗。 学习,你一定要知道学习的目的,学习的意义,你才能更好的坚持下去。就像走路,蒙着你的眼睛,让旁边人告诉你“往前三步,左转两步,再右转走十步”,你想想,这种模式,有几个人能撑到下去?还不如一开始就告诉他,“今天我们去哪里,跟着我走!”
热心网友
时间:2022-04-11 13:50
数据结构难学大概有以下4个原因。
(1)无法接受它的描述方式。数据结构的描述大多是抽象的形式,我们习惯了使用自然语言表达,难以接受数据结构的抽象表达。不止一个学生问我,书上的“ElemType”到底是什么类型?运行时怎么经常提示错误。它的意思就是“元素类型”,只是这样来描述,你需要什么类型就写什么类型,例如int。这样的表达方式会让不少人感到崩溃。
(2)不知道它有什么用处。尽管很多人学习数据结构,但目的各不相同。有的人是应付考试,有的人是参加算法竞赛需要,而很多人不太清楚学习数据结构有什么用处,迷迷糊糊看书、做题、考试。
(3)体会不到其中的妙处。由于教材、教师等各种因素影响,很多学生没有体会到数据结构处理数据的妙处,经常为学不会而焦头烂额,学习重在体会其中的乐趣,有乐趣才有兴趣,兴趣是最好的驱动力。
(4)语言基础不好。我一直强调先看图解,理清思路,再上机。可还是有很多同学已经理解了思路后,因为缺少main函数,输入/输出格式不对,缺少括号等各种语言问题卡壳,而这一切都被戴上了“数据结构太难了”的大帽子。
热心网友
时间:2022-04-11 15:41
数据结构到底难在哪里?数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成最后的最后,给没时间看我视频的同学简单总结两条:
1、知其然,更要知其所以然。
2、数据机构是算法的基础,两者不可割裂。
很多教材,讲数据结构就“链表”“二叉树”的讲数据结构,数据结构是什么样子的,怎么插入怎么删除怎么查找,什么都讲了,但为什么需要这样的数据结构?不讲!或者一笔带过……这是非常非常不负责任的!飞哥那时候学数据结构,这一点是把我坑死了的。很后来很后来,也不知道是哪里东看一句西捡一段,“哦,链表是为了内存管理!”“栈,是方便函数调用”“二叉树就是数据库的索引”……这样点点滴滴的才把这些东西串起来,数据结构的世界才豁然开朗。
学习,你一定要知道学习的目的,学习的意义,你才能更好的坚持下去。就像走路,蒙着你的眼睛,让旁边人告诉你“往前三步,左转两步,再右转走十步”,你想想,这种模式,有几个人能撑到下去?还不如一开始就告诉他,“今天我们去哪里,跟着我走!”
好像还可以再来一点?
我说了为什么教,可能同学们更关心的是怎么学。
其实我一直反对的,是“数据结构和算法”至上论(同样我反对的,还有“学历”至上论),注意“至上”这两个字。比如那种说法,“不学数据结构和算法,一辈子都是码畜”,我就非常讨厌。真的是非常讨厌,哪怕我自己好歹学了点。知识,是没有高低贵贱之分的。
总有些人,觉得有什么缺了它就不行的“核心”技术——但我告诉你,做成一件事,其实缺了哪一门技术都不行。
干脆再来一点:
数据结构和算法,怎么学,看你的兴趣。实际上,学无止境,只要尽力了,能学到哪里就到哪里,没有什么问题。计算机发展到今天,其实已经大量封装高度抽象啦,我们做程序员,不一定个个都得造轮子。其实能把别人的轮子用好,能做一个所谓的好码农,都已经很了不起了。定义稍稍严格一点,很多很多的程序猿,连“合格”都够不上。
当然,你说,我对这玩意儿特别感兴趣……那没关系啊,盘他!是不是?但是呢,给个小建议,别盘出什么优越感来了。没必要,还拉仇恨值,关键的关键,这很有可能让你变得狭隘,局限你的视野:除了数据结构和算法,原本还有很多很多很有意思很有挑战性的东西。
热心网友
时间:2022-04-11 17:49
难在第一次接触,学过的理清之后基本会永远理解其中规律而不会忘记
就我自己的经历来说,还是难在逻辑关系处理上。而在计算机编程最直接的就是指针的抽象。那种对象套自己同类型指针可能开始确实很难理解。
第一次难感觉是难在链表(可以说是抽象结构)。那种抽象逻辑确实很难一下就接受,这个时候多看视频,多画图,手写单链表,双链表。手写增删改查,初次可能会遇到各种问题,bug。但是当你完整跑起来的时候会有一种满满的舒适感!
当抽象的逻辑关系能够掌握,那么一些数据结构比如队列。栈等等线性表就很容易解决了。搞清运行的规则就很容易掌握。
第二次难可能会遇到一些难懂的规则(而不是结构上)。 比如avl,伸展树,红黑树,线段树,又或者是kmp,以及图论一些算法。这些算法(数据结构)基本要一个个啃。学一个会一个吧。主要是搞懂运行规则(算法)。
综上,感觉第一次难在数据的抽象逻辑关系吧,第二次难在算法吧。到单纯数据结构而言还是可以被大部分人掌握的。只要肯下功夫,最好学习过程自己巧demo,刷题(可以刷楼上姥姥学校的pat就是偏数据结构)!
个人见解,如果有不恰当还请指正,当然,每个人学习能力可能有差距,最好不要一篇概论不难不难的。至少对于很多人来说,还是很难得(要花很多时间攻克,也是程序猿必修!),共勉加油!
热心网友
时间:2022-04-11 20:14
数据结构难,有以下4个方面:
1、难在一些结构的逻辑组成不是很好理解,或者说,没有遇到实际的需求场景,只是告诉你这么个数据结构的话,就会不明白这么做意义在哪里。
2、不知道它有什么用处。尽管很多人学习数据结构,但目的各不相同。有的人是应付考试,有的人是参加算法竞赛需要,而很多人不太清楚学习数据结构有什么用处,迷迷糊糊看书、做题、考试。
3、体会不到其中的妙处。由于教材、教师等各种因素影响,很多人没有体会到数据结构处理数据的妙处,经常为学不会而焦头烂额,学习重在体会其中的乐趣,有乐趣才有兴趣,兴趣是最好的驱动力。
4、语言基础不好。很多人缺少main函数,输入/输出格式不对,缺少括号等各种语言问题卡壳,而这一切都被戴上了“数据结构太难了”的大帽子。
热心网友
时间:2022-04-11 22:55
虚学了三年,但真正学习的天数不超过半年,认真学习的天数不超过一个月。
这个问题虽e68a84e8a2ad62616964757a686964616f31333366306461然过了很久,相信题主现在已经工作了,或者其他的,至于难不难,题主现在心中都有答案了,毕竟经历过,我也不必再说了。但没关系,以下可以适合还在大学刚接触数据结构的同学:
开头难(刚接触时,很多不懂),中间难(很多概念虽然懂了,但当时编程语言的语法不太熟悉,尤其对C语言的指针,内存管理等概念不熟悉,影响对代码例子的理解),结尾难(对自己要求高了,了解得越深,想要理解的越多,越发现自己以前好多都不明白)。
我可能比别人笨些,或者比较懒些(课后从来就不复习数据结构,当时听信了所谓“高人”的指点,说数据结构并不重要,然后被我忽视了,就写装*高大上的小程序去了),不过每次上课都挺认真的,考试却很努力只考了70多分。
我觉得学习数据结构得要分三个阶段:
1. 先理解数据结构的每个知识点。先一知半解
2. 首先一定要对数据结构中例子代码常常出现的编程语法进行理解,否则理解代码例子是很困难的。然后,这个阶段先看懂别人代码实现的思路,实现过程尽量详细。
3. 自己尝试实现简单的代码。哪怕默写别人的代码也可以。不过有能力了,最好自己实现一下。找相关的编程题做下,最好面试题。
热心网友
时间:2022-04-12 01:53
数据结构和算法是几代人的心血,把这些知识一次性塞到咱们的脑子,需要时间消化,这不是难不难的问题,是需要时间去消化,需要配合着实践去理解,不是一个短期的过程,当然应付考试除外。
再说设计模式,设计模式说的简单点就是能让你少写代码,少改代码,提高工作效率,减少维护成本。究其本质设计模式是为了弥补编程语言缺陷而出来的,如果语言本身设计的足够完美也没有设计模式什么事儿了,不要把它想的太过于高大上,这只是软件前辈们总结出来的比较好的代码组织方式,也是结合着实际的场景去理解和运用效果最佳,不要为了学习设计模式而学习。
热心网友
时间:2022-04-12 05:08
速度的结构到底在哪里,数据的结构应该在市场,市场的购买力,市场的人流量,都是数字结构,这当然是很难的,要用大数字去衡量,也不是一般人能看懂的。
热心网友
时间:2022-04-12 08:39
数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。刚学的话都难,第二遍的时候感觉树和图里面的算法很难,不过树和图的核心都是遍历,所以第一遍的时候建议把遍历的算法好好手动演示一遍,不要光记住,这样容易忘记,一定要手动演示,知道递归是怎么调用的,树图里面的其它大部分算法都是以遍历为基础的,遍历的内部实现知道很清楚的话,很多其它算法都是在它的基础上加加减减改改就出来了,加油*年,数据结构很重要,要知难而上,不要放弃
热心网友
时间:2022-04-12 12:27
数据结构是非常难的,主要是难在它的理解,数据结构的理解非常的难,如果把数据结构理解好以后,那么对这样的研究就非常的容易。
热心网友
时间:2022-04-12 16:32
我觉得数据结构之所以难是因为它是一种虚拟化,因为虚拟所以比较难,因为数据难以琢磨透啊,这数据是非常复杂的计算方法计算出来的数据机构,所以会比较难。
热心网友
时间:2022-04-12 20:53
因为数据结构中涉及的方法比较多,学好了方法才能编写算法,比如顺序表中有栈,队列,链表中指针的使用,树和二叉树,数组,查找技术和排序技术。这只是一部分,并且其中每一小部分都有很多解决问题的方法,然后根据这些方法才能编写C语言或者其他计算机语言的算法.所以C语言学的好的人,没有学懂数据结构中的方法也是无法编出程序的。
热心网友
时间:2022-04-13 01:31
数据结构到底难在哪里。真的数据结构难在它的组成及分析,最后得岀结论。这些数据结构的组成及分析,可以说到现在还无人彻底的理解。如陈景润研究的才1+2。还1+1呢。所以是难到无法想象的。
热心网友
时间:2022-04-13 06:26
感觉树和图里面的算法很难,不过树和图的核心都是遍历,所以第一遍的时候建议把遍历的算法好好手动演示一遍,不要光记住,这样容易忘记,一定要手动演示,知道递归是怎么调用的,树图里面的其它大部分算法都是以遍历为基础的,遍历的内部实现知道很清楚的话,很多其它算法都是在它的基础上加加减减改改就出来了,加油*年,数据结构很重要,要知难而上,不要放弃