数据结构的初步认识
2014-02-28 11:55
246 查看
著名的计算机科学家,N.沃思(Niklaus Witth)曾经提出一个这样的公式:
算法+数据结构=程序
他清楚的揭示了算法和数据结构对于程序的重要性,我们不能脱离了数据结构抽象的去寻找问题的解决之道,也不能脱离了算法孤独的去研究程序的结构。如果不了解数据结构和算法,我们就无法写出高效率,高质量的优秀代码。那么下面我们就了解一下数据结构是由那些组成构成。
1.逻辑结构
2.存储结构
3.运算
那么什么是逻辑结构,什么是储存结构,什么又是运算了。因为这次只是一次初步的认识所以就不做多的解释
逻辑结构:线性结构、树状结构和网络结构。表和树是最常用的两种高效数据结构,许多高效的算法可以用这两种数据结构来设计实现。表是线性结构的(全序关系),树(偏序或层次关系)和图(局部有序(weak/local orders))是非线性结构。
存储结构:数据的存储结构就是建立一种映射关系,每一个节点都 会对应着一个唯一的连续的储存区域。储存结构有四种的基本映射方法:1.顺序 2.链接 3.索引 4.散列
运算:算法(algorithms)是为了求解问题而给的指令,程序是算法的一种是实现。同一个问题总是会存在多个算法,而算法的两个要点 一个是时间,一个是空间。而程序的设计中大多都会采用空间资源换时间资源的策略进行设计。
那么在了解了数据结构的组成之后。下面我们就先对逻辑结构中的线性结构,树结构,和图结构做一个简单的了解
1.线性结构(linear structure)
2.树结构(tree structure)
3.图结构 (graph structure)
其实还有一种说法是 还有一个文件结构,文件结构它属于外存(外部存储不在内存里面)。其实它就是一种特殊的线性结构+树结构,所以我们就当它是一种线性结构+树结构。就不多说了。那么什么是线性结构了,什么是树结构,什么是图结构了。那么下面就是一些简单解释了
线性结构(linear structure):在程序中使用的最多,它是单向的。它可以成为前后关系,大小关系,因为它的关系是有向的,且满足全序性(全部的节点都可以进行前后的比较)和单索性(节点X后面有个后继Y节点,如果还有个Z节点。Z节点在Y节点之前,那么它也会在X节点之前,不会在XY节点之间)等约束条件,String类型就是一个线性结构。
树结构(tree structure):树型结构简称:“树结构”,也称为:“层次结构”。它的特点是它可以有多个直接的下级节点但是它只能有一个直接的上级节点。树节点的最高节点(root)节点,也就是根节点它是没有父节点的。树结构有很多变异的结构:比如,二叉树,堆结构等它们都有各自的用途。
图结构 (graphstructure) :图结构就是互联网的网络结构,网页的链接就是一个复杂的图结构,图结构没有任何的约束.
算法+数据结构=程序
他清楚的揭示了算法和数据结构对于程序的重要性,我们不能脱离了数据结构抽象的去寻找问题的解决之道,也不能脱离了算法孤独的去研究程序的结构。如果不了解数据结构和算法,我们就无法写出高效率,高质量的优秀代码。那么下面我们就了解一下数据结构是由那些组成构成。
1.逻辑结构
2.存储结构
3.运算
那么什么是逻辑结构,什么是储存结构,什么又是运算了。因为这次只是一次初步的认识所以就不做多的解释
逻辑结构:线性结构、树状结构和网络结构。表和树是最常用的两种高效数据结构,许多高效的算法可以用这两种数据结构来设计实现。表是线性结构的(全序关系),树(偏序或层次关系)和图(局部有序(weak/local orders))是非线性结构。
存储结构:数据的存储结构就是建立一种映射关系,每一个节点都 会对应着一个唯一的连续的储存区域。储存结构有四种的基本映射方法:1.顺序 2.链接 3.索引 4.散列
运算:算法(algorithms)是为了求解问题而给的指令,程序是算法的一种是实现。同一个问题总是会存在多个算法,而算法的两个要点 一个是时间,一个是空间。而程序的设计中大多都会采用空间资源换时间资源的策略进行设计。
那么在了解了数据结构的组成之后。下面我们就先对逻辑结构中的线性结构,树结构,和图结构做一个简单的了解
1.线性结构(linear structure)
2.树结构(tree structure)
3.图结构 (graph structure)
其实还有一种说法是 还有一个文件结构,文件结构它属于外存(外部存储不在内存里面)。其实它就是一种特殊的线性结构+树结构,所以我们就当它是一种线性结构+树结构。就不多说了。那么什么是线性结构了,什么是树结构,什么是图结构了。那么下面就是一些简单解释了
线性结构(linear structure):在程序中使用的最多,它是单向的。它可以成为前后关系,大小关系,因为它的关系是有向的,且满足全序性(全部的节点都可以进行前后的比较)和单索性(节点X后面有个后继Y节点,如果还有个Z节点。Z节点在Y节点之前,那么它也会在X节点之前,不会在XY节点之间)等约束条件,String类型就是一个线性结构。
树结构(tree structure):树型结构简称:“树结构”,也称为:“层次结构”。它的特点是它可以有多个直接的下级节点但是它只能有一个直接的上级节点。树节点的最高节点(root)节点,也就是根节点它是没有父节点的。树结构有很多变异的结构:比如,二叉树,堆结构等它们都有各自的用途。
图结构 (graphstructure) :图结构就是互联网的网络结构,网页的链接就是一个复杂的图结构,图结构没有任何的约束.
相关文章推荐
- 我是运营,我没有假期
- 动易2006序列号破解算法公布
- DB2数据库的安装
- “传奇”图象数据存储方式
- 修复mysql数据库
- 用SQL建立索引的方法步骤
- SQL效率提升之一些SQL编写建议并有效利用索引
- SQLSERVER的非聚集索引结构深度理解
- SQL Server误区30日谈 第8天 有关对索引进行在线操作的误区
- SQL Server 索引介绍
- SQLServer 数据导入导出的几种方法小结
- SqlServer 索引自动优化工具
- MySQL数据备份之mysqldump的使用详解
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- C#数据结构与算法揭秘二
- C#数据结构揭秘一
- 优化 SQL Server 索引的小技巧
- sqlserver 索引的一些总结
- 给你的数据库文件减肥
- mysql中索引使用不当速度比没加索引还慢的测试