数据结构简介

软件设计是计算机学科各领域的核心,在计算机发展的早期,软件设计所处理的数据都是整型、实型等简单数据,绝大多数的应用软件都是用于数值计算。

随着信息技术的发展,计算机逐渐进入金融、商业、管理、通信及制造业等行业,广泛地应用于数据处理和过程控制。计算机加工处理的对象也由纯粹的数值型数据发展到字符、表格和图像等各种具有一定结构的数据,这就给程序设计带来一些新的问题。

为了设计出一个结构好而且效率高的程序,必须研究数据的特性、相互关系及对应的存储表示,并利用这些特性和关系设计出相应的算法和程序,这正是数据结构课程研究的内容。

结合自己近 8 年对数据结构的研究,我原创了一整套数据结构和算法教程(https://xiexuewu.github.io),它通俗易懂、不学院派,没有晦涩难懂的学术用语,教程提供了完整、可运行的 C 语言程序,非常适合有 C 语言基础、想系统学习数据结构和算法的人。

什么是数据结构

用计算机解决一个具体问题时,一般需要经过下列几个步骤:
1.从具体问题抽象出一个适当的数学模型;
2.设计或选择一个解此数学模型的算法;
3.最后编写出程序进行调试、测试,直至得到最终的解答。
由于早期计算机所涉及的运算对象是简单的整型、实型或布尔类型数据,程序设计者的精力主要集中于程序设计的技巧上,无须重视数据结构。随着计算机应用领域的扩大和软、硬件技术的发展,非数值计算问题显得越来越重要。

据统计,当今用计算机处理的非数值计算性问题占 90% 以上的机器时间,如图书资料的检索、职工档案管理、博弈游戏等,这类问题涉及的数据结构相当复杂,数据元素之间的相互关系无法用数学方程或数学公式来描述。这类问题的处理对象中的各分量不再是单纯的数值型数据,更多的是字符、字符串或其他编码表示的信息。

因此,首要的问题是把处理对象中的各种信息按其逻辑特性组织起来,再研究如何把它们存储到计算机中。只有做完了这些工作,才能设计解决具体问题的算法,并编写出相应的程序。

举个简单的例子,假设几个村庄之间要架设输电线路,根据电能的可传递性,并不需要在每对村庄之间架设线路。如何用最小代价架设线路让每个村庄都能用上电。

这里用顶点代表村庄,每对顶点之间的边代表村庄之间的线路,边的权值代表线路的建设费用,如下图所示。


图 1 输电线路示意图

处理此类问题需要用到数据结构,更确切的说是要用到被称做“图”的数据结构。把这个图的有关信息存储在计算机中,利用图的最小生成树算法,在此图中找出不能形成回路的 n−1 条边,并使得权值最小,就可以解决这个问题。

非数值计算问题的求解往往比较复杂,涉及数据的逻辑结构、数据存储、数据加工等。这也正是“数据结构”这门课程所要研究的内容。

学习数据结构的意义

数据结构是计算机科学与技术专业的核心基础课程。所有的计算机系统软件和应用软件都要用到各种类型的数据结构。因此,要想更好地运用计算机来解决实际问题,仅掌握几种计算机程序设计语言是难以应付众多复杂课题的。

要想有效地使用计算机、充分发挥计算机的性能,还必须学习和掌握好数据结构的有关知识。学好“数据结构”这门课程,对于学习计算机专业的其他课程,如操作系统、编译原理、数据库管理系统、软件工程、人工智能等都是十分有益的。

数据结构的研究不仅涉及计算机硬件(特别是编码理论、存储装置和存取方法等)的研究范围,而且与计算机软件的研究有着密切的关系。无论是编译程序还是操作系统,都涉及如何组织数据,使检索和存取数据更为方便。因此,可以认为,数据结构是介于数学、计算机硬件和软件三者之间的一门核心课程。

目前,数据结构是我国高校计算机专业的核心课程之一,也是其他信息类专业如信息管理、通信工程、信息与计算科学等的必修课程之一。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 数据结构 some concepts 数据:所有能被输入到计算机中,且能被计算机处理的符号的集合。是计算机操作的对...
    liuzhangjie阅读 684评论 0 0
  • 数据结构可以定义为数据元素组,它提供了在计算机中存储和组织数据的有效方法,以便可以有效地使用它。 数据结构的一些示...
    易百教程阅读 1,131评论 0 2
  • 线性表:线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的(...
    芒鞋胜马阅读 1,133评论 0 1
  • 算法和数据结构是我们必须学习的知识点,因为程序设计=数据结构+算法。 数据结构:本质上就是把数据元素按照一定的规则...
    穹生变阅读 232评论 0 0
  • 一、数据结构简介 数据结构是相互间存在特定关系的数据的集合,分为逻辑结构和存储结构。 1、逻辑结构 集合结构: 数...
    JustaKid_83bd阅读 475评论 0 1

友情链接更多精彩内容