- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
0数据结构
数据结构
维基百科,自由的百科全书
跳转到: 导航、 搜索
二叉树是数据结构的一种类型
在计算机科学中,数据结构(data structure)是计算机中存储、组织数据的方式。通常情况下,精心选择的数据结构可以带来最优效率(英语:algorithmic efficiency)的算法。
一般而言,数据结构的选择首先会从抽象数据类型的选择开始。一个设计良好的数据结构,应该在尽可能使用较少的时间与空间资源的前提下,为各种临界状态下的运行提供支持。数据结构可通过编程语言所提供的数据类型、引用(英语:reference (computer science))及其他操作加以实现。
不同种类的数据结构适合于不同种类的应用,而部分甚至专门用于特定的作业任务。例如,当计算机网络依赖于路由表运作时,B树高度适用于数据库的封装。
在许多类型的程序设计中,选择适当的数据结构是一个主要的考虑因素。许多大型系统的构造经验表明,封装的困难程度与最终成果的质量与表现,都取决于是否选择了最优的数据结构。在许多时候,确定了数据结构后便能很容易地得到算法。而有些时候,方向则会颠倒过来:例如当某个关键作业需要特定数据结构下的算法时,会反过来确定其所使用的数据结构。然而,不管是哪种情况,数据结构的选择都是至关重要的。
系统构造的关键因素是数据结构而非算法的这一深入理解,导致了多种形式化的设计方法与编程语言的出现。绝大多数的语言都带有某种程度上的模块化思想,通过将数据结构的具体实现封装隐藏于受限接口后方的方法,来让不同的应用程序能够安全地重用这些数据结构。C++、Java、Python等面向对象的程序设计语言可使用类来完成这一功能。
因为数据结构的重要性毋庸置疑,现代编程语言及其运行环境在标准库中都包含了多种的数据结构,例如C++标准模板库中的容器、Java集合框架以及微软的.NET Framework。
大多数数据结构都由数列、记录(英语:record (computer science))、可辨识联合、引用等基本类型构成。举例而言,可空引用(nullable reference,一种可被置空的引用)是引用与可辨识联合的结合体,而最简单的链式结构链表则是由记录与可空引用构成。
数据结构意味着接口或封装(英语:implementation):一个数据结构可被视为两个函数之间的接口,或者是由数据类型联合组成的存储内容的访问方法封装。
[编辑] 常见的数据结构
数组 (Array)
堆栈 (Stack)
队列 (Queue)
链表 (Linked List)
树 (Tree)
图 (Graph)
堆 (Heap)
散列 (Hash)
[编辑] 外部链接
算法与数据结构词典中的描述
/~bebis/CS308/
Bruno R. Preiss,面向对象程序设计的数据类型与算法模型:C++、Java、C#、Python、Ruby
显示▼隐藏▲
查 · 论 · 编
数据结构
类型
集合 · 容器
数组
字符串 · 关联数组 · 多重关联数组 · 集合 · 多重集 · 散列表
列表
双端队列 · 链表 · 队列 · 堆栈 · 循环队列 · 跳跃列表
树
B树 · 二叉查找树 · 堆 · 线段树 · 自平衡二叉查找树
图
有向图 · 有向无环图 · 二元决策图 · 无向图
数据结构列表
显示▼隐藏▲
查 · 论 · 编
计算机科学主要领域
数学基础
数理逻辑 · 集合论 · 数论 · 图论 · 类型论 · 范畴论 · 数值分析 · 信息论
计算理论
自动机 · 可计算性理论 · 计算复杂性理论 · 量子计算 · 数值计算方法
算法 和 数据结构
算法分析 · 算法设计 · 计算几何
编程语言 和 编译器
语法分析器 · 解释器 · 过程化编程 · 面向对象程序编程 · 函数式编程 · 逻辑编程 · 编程范型
并发, 并行 和 分布式 系统
多处理器 · 网格计算 · 并发控制
软件工程
需求分析 · 软件设计 · 程序设计 · 形式化方法 · 软件测试 · 软件开发过程
系统架构
计算机系统结构 · 微处理器体系结构 · 操作系统
电信 与 网络
路由 · 网络拓扑 · 密码学
数据库
数据库管理系统 · 关系数据库 · SQL · 事务处理 · 数据库索引 · 数据挖掘
人工智能
自动推理 · 计算语言学 · 计算机视觉 · 进化计算 · 专家系统 · 机器学习 · 自然语言处理 · 机器人学
计算机图形学
可视化 · 计算机动画 · 图像处理
人机交互
计算机辅助功能 · 用户界面 · 可穿戴计算机 · 普适计算 · 虚拟现实
科学计算
人工生命 · 生物信息学 · 认知科学 · 计算化学 · 计算神经科学 · 计算物理学 · 数值算法 · 符号计算
注释:计算机科学领域也
文档评论(0)