几天前就想写一篇关于《数据结构》方面的文章,一直没写,忍不住今天终于动手写了。我最开始学习《数据结构》课程使在大学二年级,当时编程基础薄弱的我认为它是一门很难的课程,将其和《数学分析》、《高等代数》并列为很难的几门课之一。当时的电脑还不普及,班级中能买到台式机的同学没有几个,实际上机操作进行感性学习《数据结构》课程的条件不具备。课堂上,来自老师利用在黑板上板书的方式来讲解,使得对于《数据结构》中许多关键概念的理解局限性很大。所有上面这些因素都造成了我们学习该课程的难度。

甚至在毕业后的第二年,我遇到一个计算机系毕业的校友,他毕业后从事计算机的软件开发工作,问他数据结构再软件开发中起什么作用,他的回答是:没有起什么作用。我当时心中起了疑惑:学校里的必修课,老师和同学们都认为很重要的一门课,难道在实际的开发中用不到吗?那为什么大家还华大力气来学习这么课?

后来慢慢地,随着自己对计算机课程学习的深入加上自己编程实践的积累,逐渐地对《数据结构》课程在实际的软件开发中起的作用有了更加清醒和深刻的认识。

首先,由于数据结构的重要性,许多高级程序设计语言,例如 C++,本身的库 (library) 中已经实现了许多常用的数据结构。这些常用的数据结构包括 queue、stack、list、map等。许多情况下,程序员无意中在使用一些数据结构,虽然没有意识到,但是他们仍然在使用数据结构。在上述情况下,就造成了一种错觉,数据结构对它们来说不重要。

其次,数据结构牵涉到两方面的内容,一个是设计数据结构,一个是使用他人设计好的数据结构。对于那些从事简单的软件开发工作的程序员,或者使用了第三方包库的程序员来说,它们大部分情况下是在使用别人已经设计好的数据结构,所以,他们感觉《数据结构》课程不重要。而对于复杂的软件项目开发,程序员既要使用现成的数据结构,又要设计解决问题
所需要的数据结构,在这种情况下,大学里学习的《数据结构》课程尤其显得重要。所以,我们在大学里认真学习好《数据结构》课程,尽量亲自动手编写实现课后的习题,至关重要。

最后,只要你想让计算机帮助解决你面临的问题,或者你提出了一个新颖的解决某个问题的算法,你就需要设计好数据结构,你使用 OOP 语言设计的类也是数据结构的表现形式。你的数据结构方面的过硬的功夫会帮助你更快地更高效地实现算法,顺利地帮助你解决面临的问题。

总之,我认为,《数据结构》课程就是一门专业基础课。学好之后会让自己受益无穷。君不见,现在好多国外介绍和讲解程序设计的书籍总喜欢在书的结尾部分顺便讲解一下简单的数据结构,以激起读者进一步的学习兴趣。

数据结构在编程项目中的作用和认识相关推荐

  1. 工时表软件在项目中的作用 帮助企业管理项目成员的工时

    企业的不断发展离不开每一个成功交付的项目,但在任何一个项目中,人力成本是主要的成本之一,员工的工作效率高低影响着项目成本和质量的关键点.如果想要降低整个项目的成本那就需要对员工工时更加精准的把控,所以 ...

  2. 业务分析师在敏捷项目中的作用

    业务分析师在敏捷项目中的作用 作者 Shane Hastie 译者 郑柯 发布于 2009年2月23日 下午12时35分 社区 Agile 主题 客户及需求 标签 补充实践 敏捷软件开发实践的文化中存 ...

  3. 业务分析师在敏捷项目中的作用(ZT)

    业务分析师在敏捷项目中的作用 作者 Shane Hastie 译者 郑柯 发布于 2009年2月23日 领域 过程 & 实践, 架构 & 设计 主题 客户及需求 , 敏捷 , 补充实践 ...

  4. XML在JAVA项目中的作用

    java项目中,xml文件一般都是用来存储一些配置信息 一般的编程, 多数用来存储配置信息 . 拿JDBC来说,可以把数据库连接字符串写到xml,如果要修改数据源,只需要改xml就可以了,没必要再去重 ...

  5. 响应式编程项目中总结

    响应式编程-小白工作中总结(1) 1.业务描述 将excel表中的数据导入,判断excel表中的医院是否存在和是否已经被关联,如果不存在或者已经被关联,收集起来返回. 2.主要业务代码 2.1 关联医 ...

  6. python编程项目中遇到的困难_python开发中遇到的常见问题,你们又是如何解决的呢?如何快速的学好python,有没有什么小技巧?...

    一.expected an indented block (小白问题)缩进问题, 报错地方前面要有4个空格 二. module 'urllib' has no attribute 'request' ...

  7. tomcat一类的中间件在项目中的作用是什么

    记得跟着老师写的第一个web,老师让我们去下载tomcat,然后把项目扔进去,启动tomcat,却没有告诉我们,为什么需要这样做...       如今已经工作了一年多,已经参与了不少web项目,这阵 ...

  8. 数字证书在密改项目中的作用与应用实现

    摘要: 本文从政策法规和技术标准方面,梳理了信息系统密码应用的必要性及要达到的目标,并重点从技术要求入手,说明数字证书在保障身份真实性.数据机密性.数据完整性.不可否认性方面的技术实现.希望能为密码应 ...

  9. 数据结构--树--在项目中的实践应用

    案例场景: 在本项目中有一个服务拓扑,这个服务拓扑呢每个客户属于不同的角色,不同的角色看到的服务拓扑是不一样的,并且这个服务拓扑是一个树形结构 思路分析:根据token取出用户信息,找到用户的角色id ...

最新文章

  1. WPF 之 调用线程必须为 STA,因为许多 UI 组件都需要
  2. Log4j写入数据库详解
  3. SQL表内查重和删重
  4. CentOS 7 下使用yum安装MySQL5.7.20 最简单 图文详解
  5. php 两个数据的交集_请问下在PHP中,如何返回两个数组的多个交集
  6. java corepoolsize_理解ThreadPoolExecutor线程池的corePoolSize、maximumPoolSize和poolSize
  7. SUSE11 搭建iscsi target 配置
  8. oracle 10g学习之分组函数
  9. shell循环,判断介绍,以及实例
  10. python编辑器编程猫_编程猫Python编辑器 Mac版0.4.0 下载 - 51下载网
  11. linux播放光盘花屏,求助fedora光盘安装花屏怎么解决
  12. springboot之提高maven的速度
  13. pymysql 数据库操控
  14. oracle 11.2.0.3.0 client下载,oracle64位客户端 Instant Client
  15. python爬虫和八爪鱼哪个快_八爪鱼采集器能取代python爬虫吗?
  16. 真offer收割机!190道大数据面试真题大汇总(附答案详解)
  17. css3制作菱形图片
  18. python离线安装selenium_python34怎么离线安装selenium
  19. c语言str相关的函数
  20. java接口可以被继承吗

热门文章

  1. 飞硕家的宠物商店——需求分析
  2. 各位mm和gg互相关注,互踩呀
  3. Windows 7 下如何阻止点击刻录机盘符托盘就自动弹出
  4. citespace(一)采集数据安装和使用
  5. Java——SystemTray系统托盘
  6. Fast Detection of Curved Edges at Low SNR
  7. 腾讯云服务器重启过慢的解决办法
  8. 用Python开发基于Mirai框架的QQ机器人-1. 安装与搭建
  9. autojs免root脚本引擎开发的微信群爆粉脚本免费开源分享代码
  10. XMLHttpRequest': Invalid uve无效的问题