数据结构基础概念
来源:互联网 发布:linux sort 倒序 编辑:程序博客网 时间:2024/06/04 18:43
数据结构的重要性
对于非数值计算程序,由于数据间关系复杂,数据量大,因此对于良好数据结构的要求要高于对于算法的要求。
数据结构的讨论层次
- 抽象层:讨论数据的逻辑结构和所需的运算;
- 实现层:讨论数据的存储表示和运算的实现。
数据的逻辑结构
- 集合结构:元素间的次序是任意的;
- 线性结构:元素之间构成有序序列,除头尾元素外,其余元素都有一个前驱和一个后继;
- 树形结构:元素之间构成层次关系,除根元素没有前驱外,每个元素都有一个前驱和若干个后继;
- 图形结构:最一般的逻辑结构,每个元素的前驱和后继数目都不限。
数据结构的运算
- 创建运算(Create):创建一个空的数据结构;
- 清除运算(Clear):删除数据结构中的所有数据元素;
- 插入运算(Insert):在数据结构的指定位置上插入一个新的数据元素;
- 删除运算(Remove):将数据结构中的某个数据元素删除;
- 搜索运算(Search):在数据结构中搜索满足特定条件的数据元素;
- 更新运算(Update):修改数据结构中的某个数据元素;
- 访问运算(Visit):访问数据结构中的某个数据元素;
- 遍历运算(Traverse):按照某种次序访问数据结构中的每一个数据元素, 使每个数据恰好被访问一次。
存储实现
- 数据运算的实现通常称为运算实现;
数据元素之间的逻辑关系实现通常被称为存储实现。 - 一个物理结构通常由以下三部分组成:
- 存储节点,每个节点存放一个数据;
- 数据元素之间关系的存储,也就是逻辑结构的机内表示;
- 附加信息,为方便运算而设置的一些“哑节点”,如链表中的头节点。
- 存储节点之间的关联有以下4种实现方式:
- 顺序实现:存储节点放在连续的存储区域, 节点逻辑关系通过存储位置体现;
- 链接实现:存储节点分散在存储器的不同位置,节点关系通过指针显式指出;
- 散列存储:专用于集合的存储方式,各节点均匀地分布在一块连续的存储区域内, 用一个散列函数将数据元素和存储位置关联起来;
- 索引存储:所有的存储节点按照生成顺序连续存放, 另设置一个索引区域表示节点之间的关系。
算法分析
- 算法质量的评判标准:
- 正确性:正确实现预定功能;
- 易读性:易于阅读和理解, 便于调试、修改和扩充;
- 健壮性:算法能够对于环境变化作出处理,不产生不正确的运算结果;
- 高效性:具有较高的时间和空间性能。
- 算法分析:确定算法的时空性能
- 时间性能(或时间复杂度):算法的计算量;
- 空间性能(或空间复杂度):算法的存储量;
0 0
- 1 数据结构基础概念
- 数据结构基础概念
- 基础数据结构概念回顾
- 数据结构之基础概念
- 数据结构基础概念
- 数据结构基础概念
- 数据结构基础概念
- 数据结构基础概念篇
- 数据结构基础 哈希表 概念篇
- Python基础概念_7_数据结构
- 数据结构(Java)--基础概念
- 基础数据结构和算法概念
- 数据结构笔记 第一章基础概念(一)
- 数据结构笔记 第一章基础概念(二)
- 01.数据结构概念与算法基础
- 数据结构基础 之 二叉堆 概念篇
- 数据结构学习笔记(一)基础概念
- java数据结构和算法(基础概念)
- Chapter 2: Variables and Constants
- Spring与Hibernate整合报错:unable to get the default bean validation
- 很好的开源c++库总结
- 坦克游戏的2.0
- github修改用户名
- 数据结构基础概念
- iOS、mac开源项目及库(转载)
- 为什么要用sub main
- MySQL数据库cmd操作基本命令和加载链接
- adb shell root权限
- .gitignore
- 新闻发布系统的增删改查 源码
- 控制面板上小球的运动
- Ejb2.0入门教程