数据结构到底难在哪里?

如题所述

(1)无法接受它的描述方式。数据结构的描述大多是抽象的形式,我们习惯了使用自然语言表达,难以接受数据结构的抽象表达。不止一个学生问我,书上的“ElemType”到底是什么类型?运行时怎么经常提示错误。它的意思就是“元素类型”,只是这样来描述,你需要什么类型就写什么类型,例如int。这样的表达方式会让不少人感到崩溃。

(2)不知道它有什么用处。尽管很多人学习数据结构,但目的各不相同。有的人是应付考试,有的人是参加算法竞赛需要,而很多人不太清楚学习数据结构有什么用处,迷迷糊糊看书、做题、考试。

(3)体会不到其中的妙处。由于教材、教师等各种因素影响,很多学生没有体会到数据结构处理数据的妙处,经常为学不会而焦头烂额,学习重在体会其中的乐趣,有乐趣才有兴趣,兴趣是最好的驱动力。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-08-19
就我自己的经历来说,还是难在逻辑关系处理上。而在计算机编程最直接的就是指针的抽象。那种对象套自己同类型指针可能开始确实很难理解。
第一次难感觉是难在链表(可以说是抽象结构)。那种抽象逻辑确实很难一下就接受,这个时候多看视频,多画图,手写单链表,双链表。手写增删改查,初次可能会遇到各种问题,bug。但是当你完整跑起来的时候会有一种满满的舒适感!
当抽象的逻辑关系能够掌握,那么一些数据结构比如队列。栈等等线性表就很容易解决了。搞清运行的规则就很容易掌握。
第二次难可能会遇到一些难懂的规则(而不是结构上)。 比如avl,伸展树,红黑树,线段树,又或者是kmp,以及图论一些算法。这些算法(数据结构)基本要一个个啃。学一个会一个吧。主要是搞懂运行规则(算法)。
综上,感觉第一次难在数据的抽象逻辑关系吧,第二次难在算法吧。到单纯数据结构而言还是可以被大部分人掌握的。只要肯下功夫,最好学习过程自己巧demo,刷题
第2个回答  2020-08-19
数据结构到底难在哪里?数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成最后的最后,给没时间看我视频的同学简单总结两条:
1、知其然,更要知其所以然。
2、数据机构是算法的基础,两者不可割裂。
很多教材,讲数据结构就“链表”“二叉树”的讲数据结构,数据结构是什么样子的,怎么插入怎么删除怎么查找,什么都讲了,但为什么需要这样的数据结构?不讲!或者一笔带过……这是非常非常不负责任的!飞哥那时候学数据结构,这一点是把我坑死了的。很后来很后来,也不知道是哪里东看一句西捡一段,“哦,链表是为了内存管理!”“栈,是方便函数调用”“二叉树就是数据库的索引”……这样点点滴滴的才把这些东西串起来,数据结构的世界才豁然开朗。
学习,你一定要知道学习的目的,学习的意义,你才能更好的坚持下去。就像走路,蒙着你的眼睛,让旁边人告诉你“往前三步,左转两步,再右转走十步”,你想想,这种模式,有几个人能撑到下去?还不如一开始就告诉他,“今天我们去哪里,跟着我走!”
好像还可以再来一点?
我说了为什么教,可能同学们更关心的是怎么学。
其实我一直反对的,是“数据结构和算法”至上论(同样我反对的,还有“学历”至上论),注意“至上”这两个字。比如那种说法,“不学数据结构和算法,一辈子都是码畜”,我就非常讨厌。真的是非常讨厌,哪怕我自己好歹学了点。知识,是没有高低贵贱之分的。
总有些人,觉得有什么缺了它就不行的“核心”技术——但我告诉你,做成一件事,其实缺了哪一门技术都不行。
干脆再来一点:
数据结构和算法,怎么学,看你的兴趣。实际上,学无止境,只要尽力了,能学到哪里就到哪里,没有什么问题。计算机发展到今天,其实已经大量封装高度抽象啦,我们做程序员,不一定个个都得造轮子。其实能把别人的轮子用好,能做一个所谓的好码农,都已经很了不起了。定义稍稍严格一点,很多很多的程序猿,连“合格”都够不上。
当然,你说,我对这玩意儿特别感兴趣……那没关系啊,盘他!是不是?但是呢,给个小建议,别盘出什么优越感来了。没必要,还拉仇恨值,关键的关键,这很有可能让你变得狭隘,局限你的视野:除了数据结构和算法,原本还有很多很多很有意思很有挑战性的东西。
第3个回答  2020-08-19

数据很多,很复杂

要从浩如烟海的数据中提取有用的数据

需要框架

有了数据分类,统计,收集,提取,检索方法

才是有用的数据

第4个回答  2020-08-19
数据结构难学大概有以下4个原因。
(1)无法接受它的描述方式。数据结构的描述大多是抽象的形式,我们习惯了使用自然语言表达,难以接受数据结构的抽象表达。不止一个学生问我,书上的“ElemType”到底是什么类型?运行时怎么经常提示错误。它的意思就是“元素类型”,只是这样来描述,你需要什么类型就写什么类型,例如int。这样的表达方式会让不少人感到崩溃。
(2)不知道它有什么用处。尽管很多人学习数据结构,但目的各不相同。有的人是应付考试,有的人是参加算法竞赛需要,而很多人不太清楚学习数据结构有什么用处,迷迷糊糊看书、做题、考试。
(3)体会不到其中的妙处。由于教材、教师等各种因素影响,很多学生没有体会到数据结构处理数据的妙处,经常为学不会而焦头烂额,学习重在体会其中的乐趣,有乐趣才有兴趣,兴趣是最好的驱动力。
(4)语言基础不好。我一直强调先看图解,理清思路,再上机。可还是有很多同学已经理解了思路后,因为缺少main函数,输入/输出格式不对,缺少括号等各种语言问题卡壳,而这一切都被戴上了“数据结构太难了”的大帽子。
相似回答