❶ 如何学好数据结构
课前预习,你的目的在于掌握知识,又不是拼课堂表现,踏实学就行了,多练手就ok了
❷ 怎么样才能把数据结构学好
数据结构本身有些难
需要经常思考,只要能够理解里面的算法,很容易掌握。,
❸ 数据结构怎么感觉那么难,怎么可以学好呢
1.数据结构,即数据在内存中的组织形式,一般都是比较小的。而象文件格式,其实也可以看成是一种数据结构,你以后看到一些文件格式,象.3ds. .jpg ,.x等等,就不难理解。
2.数据结构。常见的线性表,树,队列,堆等,这是数据结构教授的主要内容,主要是这种结构如何建立起来,如何组织和操作等。你把这些操作图形化,死记住就行,并不难。
3.数据结构 不足的是,既然数据跟内存布局有关,老师应该补充说明下,如何设计出高效的数据结构(常用的数据结构,因为有c++等标准库支持,只要了解就行了)以满足软件设计的特定要求,同时老师还要讲解字节对齐,是如何做的。而这些都是相当实用的知识。
4.数据结构,其实就是上面说的,记住特点就行了。还觉得难,是因为这门课老师们也搞不清要如何教。
原因只有一个,老师把数据结构和算法设计放在一起教了。前者很简单,后者却是要花上几年时间才会略有所成的东西。算法设计一旦学好,看别人程序就很快了,这会节省很多时间。架构师在国内一般对算法都有很好的理解力,如果算法设计基础差而又在公司担任架构师,那么这样的架构师多半会被同事BS的。
建意:既然是说到数据结构,说明你才开始学习,去图书馆搞本象样点算法书,好好提升一下修为,算法设计学好,相当于计算机掌握50%了。这东西除非大学4年,坚持学习,否则纵使你大学毕业,工作10几年,仍然还会是半吊子。
❹ 怎样快速自学数据结构
看视频吧,先把电子科技大学——数据结构那个视频看完,估计基础就差不多了吧
❺ 数据结构怎么速学会
这个东西是个功夫活,想精通需要花大功夫(比如编程经验有1~2万行),但是如果想应付也有办法~把书上的数据结构的题通通照着敲一遍~然后背住~但是如果公司通过数据结构来问计算机底层~比如内存池之类的东西就没办法了~哥们,祝你好运
❻ 怎么才能学好数据结构
一个很简单的方法..学好数据结构..把那本书反复的看一百遍...我们班的一个人就是这样做的..只要你有那个耐心...你一定会学懂..学懂...呵呵...
❼ 怎样才可以在最短时间内学好数据结构
不想说太多 从看到我说的这句话开始做吧 从那一刻开始
编程......!!!!!!!!!!!!!
❽ 怎样才能学好数据结构
一时间也写不出太具体的方法 就在网上为你找了一个前辈发的帖子 你看一下,肯定比我写的好。
-------------------------
学习数据结构这门课程至少要经历三个过程,方可真正
的掌握这门课程,得到一个满意的成绩。这个过程简单来说就是三个字:活→死→活。
首先,是一个学“活”的过程,就要要求我们对书中的每一个算法,能够在脑海中
建立起相应的模型,而不是死板的算法。比如树的遍历非递归算法,在入栈与出栈的过程
中,我们就要在脑海中形成访问树每个结点的过程,真正掌握住这个算法。这样,全书复
习下来,你的脑海中就有了整个数据结构的模型概念,对任何一个陌生的算法,将不感到
生疏和害怕。
有些同学到了此处就觉得数据结构已经学好,可以万事大吉了,其实这还远远不够
,如果参加考试,往往会拿不到高分,甚至还会纳闷,为何自己数据结构学的这样好,成
绩却不尽如人意,因此产生了批卷老师判错的想法。所以第二个过程,就是一个学“死”
的过程,这个过程要求,要记住书中的算法(功利一点就是要背诵会所报考学校的考试要
求的算法)。有的学校有别的特殊要求,也一并背会。如上海交通大学喜欢考平均复杂度
的分析这样的题目,我们在书上可以找到这样的分析一共十一个,全部背会,就免去了在
考场上分析的麻烦,如果连答案都能记住,那么,也不会因为粗心失分了。这一过程也许
有些枯燥,但却是最重要的过程,比如说背会了树的后序遍历非递归,遇到了像求某个结
点的所有祖先,两个结点的共同祖先这样的题,不用想,直接套用。这样才是考试的高分
的关键:在考场上,遇到考题,不用思考,直接从脑海中找匹配的算法,直接引用。
有了第二个过程的辛苦,我们就可以得到一个比较高的分数了,如果还想提高,就
要进行第三个过程,再学“活”的过程。这一个过程中就要要求我们,在第二步的基础上
,多进行思考,看看有哪些算法有共性,比如说:树的前序非递归遍历算法和图的深度优
先遍历算法是不是类似啊,有些什么不同,有些什么相同,为什么会相同;森林转化为二
叉树和图的生成树的算法也是这样,等等。总结出这种共性,这样就能正确有效的记忆算
法,同时,遇到难题不至于慌乱,能够从容下手解题。
对于总结共性问题上,这里举一小个例子,(呵呵,我当初总结出这个,并且和ka
oyan.com斑竹一具讨论确定后三天,就在2002年交大第一题考出类似东东)比如树的遍
历,不管是递归还是非递归,也不管是线索树,还是头结点有父母信息的树,它的遍历其实就是一个寻找到遍历的第
一个结点,然后再寻找它的后继结点的过程,我们归纳到此处,就可以试着总结一下三种
遍历的后继结点是哪个,有几种情况:
对于前序遍历,它的后继如下:
(1)若有左孩子,则后继是左孩子;
(2)若无左孩子,有右孩子,则后继是右孩子;
(3)若既无左孩子,又无右孩子,则是一片叶子;再讨论:
(a)若是其父母的左孩子,且父母有右孩子,则后继是父母的右孩子。
(b)若是其父母的左孩子,且父母无右孩子;
(c)若是其父母的右孩子。
b,c都表示这是某个节点的左子树前序遍历的最后一个节点,则需要找第一个有右子
树的“左祖先”(定义“左祖先”,即找第一个使得当前节点在这个祖先的左子树上),
然后后继就是这个祖先的右孩子。
对于中序遍历,它的后继如下:
(1)如有右孩子,后继是右孩子的最左下节点;
(2)若无右孩子,且是父母的左孩子,则后继就是父母;
(3)若无右孩子,且是父母的右孩子,则一直上溯到第一个“左祖先”(定义如前)
则后继就是这个祖先。若无这样的祖先,说明已经遍历完毕。
对于后序遍历,它的后继如下:
(1)若是父母的右孩子,则后继是父母;
(2)若是父母的左孩子,且父母无右子树,则后继是父母;
(3)若是父母的左孩子,父母有右子树,则后继是父母右子树的最先访问到的节点(
指向父母的右子树后,一直往左,若不行的话,往右一步,一直到叶子)
总结完了,想一想,我们还能得到哪些提示?经常有一类型题目,要求求某个结点
的直接前驱。其实求前序遍历的前驱和求后序遍历的后继是一样的,只不过把左换成右而
已,前序遍历的求后继和后序遍历的求前驱、中序遍历的求前驱和中序遍历求后继都有这
样的对称关系。因此,总结出共性的东西,许多题目就可以迎刃而解了。问一问读到这里
的读者,你现在能够自己在脑子里面,非常轻松地像上面那样,把这个例子里面的情况都
条理清楚地分析总结出来吗?如果现在还不行,到考试之前,你必须掌握到这种程度,才
能得到一个自己很满意的分数。
经过以上的三个过程复习,相信读者对数据结构的掌握就可以到达比较高的水平了
,如果参加考试,获得一个比较满意的成绩也很有希望了。当然,达到这一
步并不容易,大量的练习是真正掌握的必由之路。因此,我们建议大家能够下功夫把本书
中的题目完整地做一遍。能够真正把本书中的所有题都掌握,绝不仅仅意味着仅会了书中
这几百道题目,而是意味着对数据结构这门课程的理解,以及对问题的分析能力都有很大
的提高,这样在考场上即使遇到未曾见过的题目,也就可以从容应对了!
❾ 如何学好数据结构
其实我也是学数据结构的,说实在的,学这个东西,最重要不是难不难的问题,主要是看你怎么做。如果你是自学数据结构的话,最好在参考着关于数据结构的语言编程。例如你要选修的是数据结构的c++版,你就要买本c++教程,首先把语言学好了,才能保证你能够读懂数据结构的伪代码。当然学数据结构最主要的是算法,每学一章之后都要有一个完整的总结,都要能够利用书中所学的知识进行以下必要的编程(这个是必须的)否则相当与你没有学。你比如学数据结构要学单链表,那你首先应该了解怎么制作单链表,然后试着用编程的方法描述出来。当然了,学数据结构最主要的还是各个算法本身,对代码的要求不是特别的高,但是试 想如果你连代码都不会学,学算法只能是应付公事。所以一定要掌握代码。大学考试应该不会考你太难的代码,但是研究生入学考试肯定会考的。象我一个大学老师说她考研的时候就考了个堆排序的代码描述。所以学数据结构最重要的是培养你写代码的能力。力争把代码写好,前程会一片光明。
❿ 怎么才能学好数据结构
要理解算法的原理, 主要是会用算法 ,最好的办法将算法用到你的代码中去 , 那样你对算法才有根深的认识 ,祝你好运!