zoukankan      html  css  js  c++  java
  • 数据结构:数据结构可分为几类?

    来源:https://jingyan.baidu.com/article/fb48e8be0f14616e632e1479.html

    1、逻辑结构:是指数据对象中数据元素之间的相互关系。逻辑结构分为以下四种:

       ①、集合结构:集合结构中的数据元素除了属于同一个集合外,它们之间没有其他关系。各个数据元素是“平等”的,它们的共同属性是“同属于同一个集合”。

      ②、线性结构:线性结构中的数据元素是一对一的关系。

      ③、树形结构:树形结构中的数据元素存在着一种一对多的层次关系。

      ④、图形结构:图形结构的数据元素是多对多的关系。

         注意:在图形结构中,我们在表示数据的逻辑结构时,要注意以下两点:

             a、将每一个数据元素看做一个结点,用圆圈表示。

             b、元素之间的逻辑关系用结点之间的连线表示,如果这个关系是有方向的,用带箭头的连线表示。

    2、物理结构(也叫存储结构):是指数据的逻辑结构在计算机中的存储形式。

        解析:数据是数据元素的集合,那么根据物理结构的定义,实际上就是如何把数据元素存储到计算机中的存储器中。存储器主要是针对内存而言的,像硬盘、软盘、光盘等外部存储器的数据组织通常用文件结构来描述。

      

       数据的存储结构应正确反映数据元素之间的逻辑关系,数据元素的存储结构形式有两种:顺序存储和链式存储。

       (1)、顺序存储结构:是把数据元素放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。

            解析:其实说白了这种存储结构很简单,就是排队占位。大家都按顺序呢排好,每个人占一段空间,大家谁也别插谁的队。我们在学计算机语言时,数组就是顺序存储结构。当你告诉计算机,你要建立一个有9个整型数据的数组时,计算机就在内存中找了片空地,按照一个整型所占位置的大小乘以9,开辟一段连续的空间,于是第一个数据元素就放在数组的第一个位置,第二个放在第二个位置,这样一次摆放。

        (2)、链式存储结构:把数据元素放在任意的存储单元了,这组存储单元可以是连续的,也可以是不连续的。

         使用链式存储而不用顺序存储的原因是什么?简单的举个例子:

             顺序存储结构是简单的有规律的,但是当人在排队的过程中,总会有人插队。还会有人上厕所、甚至有人放弃排队。所以这个队伍中会增加新成员,也可能会去掉老元素,整个结构都处于时刻变化中,显然,面对这样时常要变化的结构,顺序存储是不科学的。那怎么办呢?就会用到链式存储。举例:现在如银行、医院等地方,设置了排队系统,也就是每个人去了,先领一个号,等着叫号,叫到时去办理业务或看病。在等待的过程中,你爱在哪就在哪,可以是坐着、站着或者走动,甚至出去逛一圈,只要及时回来就行。你关注的需要是前一个号有没有被叫到,如果叫到了,下一个就轮到你了。

         链式存储结构中,数据元素的存储关系并不能反映其逻辑关系,因此需要一个指针存放数据元素的地址,这样通过地址就可以找到相关联数据元素的位置。

    3、总结:逻辑结构是面向问题的,而物理结构是面向计算机的。其基本目标就是讲数据及其逻辑关系存储到计算机的内存中。

  • 相关阅读:
    批量更新sql |批量update sql
    智力测试题3
    【管理心得之二十一】管得少就是管得好
    查看sqlserver被锁的表以及如何解锁
    AD域相关的属性和C#操作AD域
    毕业5年小结一下
    WPF版公司的自动签到程序
    用友畅捷通高级前端笔试题(一)凭借回忆写出
    .NET中制做对象的副本(三)通过序列化和反序列化为复杂对象制作副本
    .NET中制做对象的副本(二)继承对象之间的数据拷贝
  • 原文地址:https://www.cnblogs.com/bbllw/p/11049425.html
Copyright © 2011-2022 走看看