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

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

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

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

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

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

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

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

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

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

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

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

      

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

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

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

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

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

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

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

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

  • 相关阅读:
    PHP实现无限极分类
    html2canvas生成并下载图片
    一次线上问题引发的过程回顾和思考,以更换两台服务器结束
    Intellij IDEA启动项目报Command line is too long. Shorten command line for XXXApplication or also for
    mq 消费消息 与发送消息传参问题
    idea 创建不了 java 文件
    Java switch 中如何使用枚举?
    Collections排序
    在idea 设置 git 的用户名
    mongodb添加字段和创建自增主键
  • 原文地址:https://www.cnblogs.com/bbllw/p/11049425.html
Copyright © 2011-2022 走看看