数据结构的初步认识

著名的计算机科学家,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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值