zoukankan      html  css  js  c++  java
  • 什么是数据结构?

    大学是计算机本专业的同学肯定有学习过数据结构这门课程,我也上过这门课,大学老师差不多花了半个学期的时间去讲这门课程,但是现在让我回想他上课讲了什么,我已经记不清了,因为大学课程有个共同的特点,又慢又长。通过本文主要解释一下我理解的数据结构是什么样子,开始进入正题。

    首先,我们为什么学习数据结构?

    举个例子:

     如果说学习语文的最终目的是写小说的话,那么如果一个小学生刚刚学习了识字,就让他去写小说,显然这是不现实的

     中间他必须经历写作文。写作文的目的有两个

    1. 掌握写作套路、技巧(理论水平),保证以后写小说的质量
    2. 提高写作水平(动手能力),为以后写小说打好基础

    学习一门计算机语言就好比识字阶段,以后开发项目就好比写小说,中间都离不开数据结构的学习,就好比学习写小说之前要先学会如何写作。

    高级计算机程序设计的理论指导

    拧螺丝需要用到扳手,用钳子也可以,只不过没有那么好用。学习数据结构,就是为了了解以后在IT行业里搬砖需要用到什么工具,这些工具有什么利弊,应用于什么场景。你会发现这些基础工具也存在着一些缺陷,你不满足于此,此时,你就开始自己在这些数据结构的基础上加以改造,这就叫做自定义数据结构。

    掌握了开车的本领,桑塔纳、宝马、奔驰都可以上手开了

    数据结构可以采用不同的语言来描述和实现,我这里所讲述的自然是Java语言。

    提升编程能力

    个人认为数据结构是编程最重要的基本功没有之一

    学习了Java、python、android、C、C++,你就成为编程高手了吗

    不见得,每门语言都是入门而已,水平并没有得到多少锻炼

    学习一门数据结构,掌握了各种简单、复杂数据类型的算法,编程能力会有大的提升,甚至质的飞跃,内力深厚。

    面试中经常问到

    为什么面试官喜欢问数据结构

      能够看出一个同学是否基础扎实,能够看出一个人的发展后劲

      因为数据结构本身也有难度

    有哪些数据结构?

    线性表、栈、队列、(字符串)串、数组、广义表、树、二叉树、图

    重点是线性表、二叉树

    数据结构与算法不可分

    对于查询和排序一般单独讨论

    学习数据结构的四种境界

    境界1:听懂理论、听懂算法思路(理论家、眼高手低,总比不知道强多了)

    境界2:完成主要数据结构基本算法的实现(理论+实现,数据结构入门了)

    境界3:完成更多数据结构更多算法的实现(进一步提高数据结构功底)

    境界4:融会贯通、举一反三,在后续开发中综合应用数据结构知识(数据结构就是哲学思想,只有和实践结合才能学好)

    学习数据结构不是一日之功、对于初学者要达到境界2,后续学习和工作中要不断地研究学习

  • 相关阅读:
    import nonWPF types into the markup
    using放在namespace里面还是外面?
    WCF Contracts
    Properties Specific to RoutedEventArgs
    sql将浮点表示的日期转化为标准日期
    Debug into WCF ServiceReference
    让form自适应高度
    Qt Access violation code c0000005 debug write access violation
    C++支持多态的几种方法
    java on CentOS
  • 原文地址:https://www.cnblogs.com/zang1998/p/11496044.html
Copyright © 2011-2022 走看看