亦来云:区块链课堂006

(慢慢行走的玄子 xuan) #1

在计算机科学中, 数据结构 (英语:data structure)是计算机中存储、组织数据的方式。

数据结构意味着介面或封装:一个数据结构可被视为两个函数之间的介面,或者是由数据类型联合组成的存储内容的访问方法封装。

大多数数据结构都由数列、记录、可辨识联合、引用等基本类型构成。举例而言,可为空的引用(nullable reference)是引用与可辨识联合的结合体,而最简单的链式结构链表则是由记录与可空引用构成。

数据结构可透过程式语言所提供的数据类型、引用及其他操作加以实现。一个设计良好的数据结构,应该在尽可能使用较少的时间与空间资源的前提下,支援各种程式执行。

不同种类的数据结构适合不同种类的应用,部分资料结构甚至是为了解决特定问题而设计出来的。例如B树即为加快树状结构存取速度而设计的资料结构,常被应用在资料库和档案系统上。

正确的数据结构选择可以提高演算法的效率(请参考演算法效率(英语:algorithmic efficiency))。在电脑程式设计的过程中,选择适当的数据结构是一项重要工作。许多大型系统的编写经验显示,程式设计的困难程度与最终成果的质量与表现,取决于是否选择了最适合的数据结构。

系统架构的关键因素是数据结构而非算法的见解,导致了多种形式化的设计方法与编程语言的出现。绝大多数的语言都带有某种程度上的模块化思想,透过将数据结构的具体实现封装隐藏于使用者介面之后的方法,来让不同的应用程序能够安全地重用这些数据结构。C++、Java、Python等面向对象的编程语言可使用类 (计算机科学)来达到这个目的。

因为数据结构概念的普及,现代编程语言及其API中都包含了多种预设的数据结构,例如 C++ 标准模板库中的容器、Java集合框架以及微软的.NET Framework。

然而,尽管计算机科学专业日益推动着美国经济,但是计算机科学教育依然不存在大多数美国K-12课程中。2010年10月由ACM和计算机科学教师协会(CSTA)共同发表了一篇名为“Running on Empty: The Failure to Teach K-12 Computer Science in the Digital Age”的报告,文中揭示了仅有14个州通过了有意义的高中计算机科学教育标准。同时,仅有9个州将高中计算机科学课程算作毕业要求的核心学科。配合“Running on Empty”这篇文章,一个新的无党派宣传联盟:Computing in the Core(CinC)被建立,以影响联邦和政府政策,比如Computer Science Education Act要求政府拨款以制定计划完善计算机科学教育及支持计算机科学教师。

在中国,“计算机科学”或“计算机科学与技术”是工科(一级门类)下的二级专业。一般可细分为三级专业:

计算机软件:围绕着软件开发、软件工程、编程语言等

计算机应用:计算机的各种应用算法、技术。如:模式识别、计算视觉、计算机图形学等等。

(Feng Zhang) #2

涨知识了,不错!点赞哦

(慢慢行走的玄子 玄子) #3

谢谢