精华内容
下载资源
问答
  • 逻辑结构
    千次阅读
    2022-03-23 17:41:52

    如何判断某数据结构是逻辑结构还是存储结构

    首先,数据结构分为两个层次:

    • 逻辑结构
    • 存储结构(物理结构)

    其中,相关的一些说法:

    • 逻辑结构是用来描述数据元素间的逻辑关系,是一个抽象概念,与数据的实际存储无关,独立于计算机存在。
    • 存储结构是数据元素及其相互之间的关系在计算机存储器中的存储方式,简而言之就是实际的物理存储方式。
    • 总结:逻辑结构是数据结构的抽象,存储结构是数据结构的实现,两者综合起来才建立了数据元素完整的结构关系。只有逻辑结构,数据无法实际存储;只有存储结构,数据不知道该用哪种合适的方式存储。逻辑结构就好比理论思想;存储结构就好比某种具体的实践方式。
    • 当一个结构,在逻辑结构中只有一种定义,而在物理结构中却有两种选择,那么我们可以判断该结构属于逻辑结构。

    举例:栈是一种线性的逻辑结构,在存储结构中,它可以使用顺序存储(数组),也可以使用链式存储(链表)。所以说栈是一种逻辑结构。

    • 相反,当某种结构在原有逻辑结构基础上加上了某种限定,使得其在物理结构中只有一种定义,那么这个结构就属于存储结构。相当于某种思想(逻辑结构)的具体某一种实践方式(存储结构)。

    物理结构分为四种:

    • 顺序存储结构

    把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中。
    元素之间的关系由存储单元的邻接关系来体现。其优点是可以实现随机存取,每个元素占用最少的存储空间;缺点是只能使用相邻的一整块存储单元,因此可能产生较多的外部碎片。

    • 链式存储结构

    不要求逻辑上相邻的元素在物理位置上也相邻,借助指示元素存储地址的指针来表示元素之间的逻辑关系。
    其优点是不会出现碎片现象,能充分利用所有存储单元;缺点是每个元素因存储指针而占用额外的存储空间,且只能实现顺序存取。

    • 索引存储结构

    在存储元素信息的同时,还建立附加的索引表。
    索引表中的每项称为索引项,索引项的一般形式是(关键字,地址)。
    其优点是检索速度快;缺点是附加的索引表额外占用存储空间。另外,增加和删除数据时也要修改索引表,因而会花费较多的时间。

    • 散列存储结构

    根据元素的关键字直接计算出该元素的存储地址,又称哈希(Hash)存储。
    其优点是检索、增加和删除结点的操作都很快;缺点是若散列函数不好,则可能出现元素存储单元的冲突,而解决冲突会增加时间和空间开销。

    如何判断某种数据结构是线性结构还是非线性结构

    按照“数据元素之间是否是一对一的关系”,逻辑结构可划分为两种:
    线性结构与非线性结构。

    • 线性结构:有且仅有一个开始结点和一个终止结点,除了头尾,每个数据元素都有一个直接前驱和直接后继,是一对一的关系。
    • 非线性结构:一个结点可能有多个直接前驱和后继,比如树、图(注意,树、图是逻辑结构);也可能没有任何关系,比如集合。

    一些容易混淆的概念:

    注意:数组是存储结构中,对顺序存储结构的物理实现,跟上面所说的一些逻辑结构不是一码事。

    注意:顺序存储结构不等于线性表,因为线性表是逻辑结构,而顺序存储结构是存储结构(物理结构),二者根本不在一个范畴,因此不能放在一起比较。
    另外:顺序存储结构不仅能实现对线性表、队列、栈(线性结构),还能实现树和图(非线性结构),即数组能实现的逻辑结构不止一种,线性和非线性的逻辑结构都可以通过数组实现。

    另外提一个:顺序表。顺序表是在计算机内存中以数组的形式保存的线性表。即对于线性表这种逻辑结构,使用数组的方式进行顺序存储,为顺序表。因此顺序表是存储结构。
    而有序表,仅仅指的是关键字有序的线性表,仅描述一种数据元素间的逻辑关系。它既可以链式存储,也可以顺序存储,因此有序表属于逻辑结构。

    常见的逻辑结构

    栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

    • 队列

    队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。

    数据结构中提到的串,即字符串,由 n 个字符组成的一个整体( n >= 0 )。这 n 个字符可以由字母、数字或者其他字符组成。

    存储结构

    • 循环队列

    为充分利用向量空间,克服"假溢出"现象的方法是:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。存储在其中的队列称为循环队列(Circular Queue)。循环队列是把顺序队列首尾相连,把存储队列元素的表从逻辑上看成一个环,成为循环队列。其实现方式为单链表。

    • 哈希表
    • 单链表

    单链表对应的逻辑结构是线性表。它是线性表的链式存储结构。

    【由于目前只是学习了第一章,有很多涉及到后面章节的知识还不太懂,所以先写到这里,后续再回来进行补充完善】

    更多相关内容
  • 逻辑结构

    千次阅读 2019-09-01 22:18:10
    按照视点的不同,数据结构分为物理结构和逻辑结构逻辑结构: 是指数据对象中数据元素之间的相互关系。逻辑结构分为以下四种: 1.集合结构 集合结构中的数据元素除了同属于一个集合外,它们之间没有其他关系。各个...

    按照视点的不同,数据结构分为物理结构和逻辑结构。
    逻辑结构:
    是指数据对象中数据元素之间的相互关系。逻辑结构分为以下四种:
    1.集合结构
    集合结构中的数据元素除了同属于一个集合外,它们之间没有其他关系。各个数据元素是“平等”的,它们的共同属性是“同属于一个集合”。数据结构中的集合关系就类似与数学中的集合。
    如图是集合结构
    2.线性结构
    线性结构中的数据元素之间是一对一的关系。可以理解为是串行的数据流。
    在这里插入图片描述
    3.树形结构
    树形结构中的数据元素之间存在一种一对多的层次关系。可以理解为军队中司令员手下有多个军长,一个军长下面有多个师长(都玩过吧)。
    在这里插入图片描述
    4.图形结构
    图形结构的数据元素是多对多的关系
    在这里插入图片描述
    我们在用示意图表示数据的逻辑结构时,要注意两点:
    1.将每一个数据元素看作一个结点,用圆圈表示。
    2.元素之间的逻辑关系用结点之间的连线表示,如果这个关系是有方向的,那么就用带箭头的连线表示,这样容易理解数据的顺序和流向。
    从以上也可以看出,逻辑结构是***针对具体问题的***,是为了***解决某个问题***,在对问题理解的基础上,选择一个合适的数据结构表示数据元素之间的逻辑关系。

    展开全文
  • 逻辑结构?存储结构?傻傻分不清……

    千次阅读 多人点赞 2020-06-28 21:45:53
    对于数据结构与算法的学习,我相信不管是新手还是老手,都会对“逻辑结构、存储结构”产生很多的疑问。你可能觉得不就是两个简单的概念嘛,早就了然于胸了。 Wait! 先不要急着下定论,我们还是先来看一道题目。...

    对于数据结构与算法的学习,我相信不管是新手还是老手,都会对“逻辑结构、存储结构”产生很多的疑问。你可能觉得不就是两个简单的概念嘛,早就了然于胸了。

    Wait!

    2rGp3S

    先不要急着下定论,我们还是先来看一道题目。实践是检验真理的唯一标准嘛!(萌新略过)

    • 例题1

    3xoodT

    选哪个呢?是不是很纠结?有答案了没?

    别急,我们再来看一道题。

    • 例题2

    TVmcFc

    如果这两道题你觉得very easy,那么接下来的内容,恭喜你,不必再看了;如果仍然觉得哪里有问题,以及不敢确定自己的答案,还是来跟着我过一遍知识吧,在阅读的过程中,思考上面的两个问题。

    注:以上例题来源于王道:《数据结构与算法》

    逻辑结构:我不要你觉得

    你应该知道,数据结构的三要素是:逻辑结构、存储结构、数据运算。

    首先我们来回答一个问题:什么是逻辑结构呢?

    从定义的角度来说,所谓逻辑结构,指的就是数据之间的逻辑关系,从逻辑关系上来描述数据。逻辑结构又包括线性结构和非线性结构两种,线性表是一种典型的线性结构,图是一种典型的非线性结构,特别注意:逻辑结构与存储结构无关。

    看了定义是不是觉得非常混乱?

    那么,你觉得什么是逻辑上的关系呢?我们来思考这个问题:”顺序表是逻辑结构吗?“

    如果你认为,”线性表是一种线性结构,顺序表是属于线性表的,所以,顺序表应该是一种逻辑结构。“

    很不幸,这种想法是非常错误的!!!

    BQK9hl

    所以,我们在判断逻辑关系的时候,不要想当然,不要你觉得,应该理性判断。

    我们可以认为逻辑结构是一种”依赖关系“,描述的仅仅是数据元素之间的关系,除了描述数据元素之间的关系外,再也没有其他的含义了

    比如,我们回顾刚刚的问题,”顺序表是逻辑结构吗?“

    答案:不是。虽然顺序表是一种线性结构,但是你要注意,顺序表背后包含着”顺序存储的意思“。也就是说,顺序表既能够描述逻辑结构,也能够描述物理结构。所以,这是一种混合类型。

    再来,”有序表是逻辑结构吗?“

    显然,是的。有序表指的是数据元素按照一定顺序排列的线性表,除了描述“两个元素之间有序”的依赖关系以外,它再也没有别的意思了。

    所以,你是不是能够体会到逻辑结构的独特之处了?

    Ks6aJg

    总结一下,逻辑结构指的就是数据元素之间的关系,这种关系可以是如下的几种:

    • 没有关系:一个集合,里面的元素除了同属一个集合以外,没有其他任何关系。很明显,这是一种非线性的关系。
    • 一对一:线性结构。线性结构中的元素都是一对一的。你可以简单的把它理解为一个串,仅有一个开端和一个结尾结点,并且除了开端和结尾外,每个结点只能有一个前驱结点和一个后继结点。比如字符串,如图所示:

    WJse0V

    • 一对多:图或者树就是两种典型的一对多的非线性关系。从图中可以看到,非线性结构的树和图中的结点除了第一个结点和最后一个结点以外,其余结点能够有一个或者多个前驱和后继。

    qro9Uz

    最后,如果让你判断一个名词是否为逻辑结构,我们应该怎么做?可以考虑以下几点:

    • 首先,判断名词是属于线性结构还是非线性结构

    • 其次,由于数据的逻辑结构是独立于存储结构的,所以考虑名词背后是否暗含存储结构?如:顺序表。(别急,关于存储结构,我们马上就讲)如果暗含存储结构,那么一定不是逻辑结构。

    存储结构:我要我觉得

    存储结构就非常好理解了,存储结构,也被称作是物理结构,表述的是含有某种逻辑关系的元素在计算机中存储的方式。可以理解为数据元素在存储器上的排列方式。

    总的来说,存储结构只有四种,分别是顺序存储、链式存储、索引存储、散列存储(哈希存储)。

    1. 顺序存储:所谓顺序存储,就是把逻辑上相邻的数据元素,存储到计算机的存储器上时,在物理上也是相邻的。最简单的实现就是数组,我们可以直接把一列元素存储在数组中。显然,这种实现存储的方式优点是:能够实现随机存取,即通过数组的下标,我们能够很轻松的找到数据元素获取或者修改它。

    2. 链式存储:链式存储,就是我们所熟知的链表。我们无需像顺序存储那样,单独开辟一片连续的存储空间,只需要用到的时候直接分配空间,用指针来实现整个一对一逻辑结构的实现。这样子做虽然节省了空间、动态扩容,但是问题也很明显:当你想找到编号为n的元素,只能从表头开始遍历。

    uB0G8b

    1. 索引存储:这种存储方式类似于我们的书和目录的关系。比如书中”第五章“的内容在35页,我们想要找到它,只需要浏览目录,然后通过页码找到相关的内容。一般存储的时候都是【关键字,地址】这种形式。

    2. 散列存储:对于散列存储,我们可以设想这样一个场景。博主我买了一套房子(买不起的,别想了.jpg),本来买的时候选中了0322这间,但是由于施工问题,整栋楼是从0000开始编号的(买的时候是按照0001编号),这样就造成了一个问题,现在的0322号已经不是我的了,我的是0321。就是原来的房间号减去1。所以,散列存储实际上就是做了一个函数关系的映射,由x去找y,如果y=x+1,那么x=1的元素就应该去y=2位置寻找。这样理解起来应该没有困难了吧。

    l8Gh94

    回过头来,我们看文章开头的第二个问题:

    A选项,循环队列,实际上是用数组实现的,也就是顺序存储;B选项,链表,很明显,这是一种链式存储;C选项,哈希表,这已经是明示了——哈希存储;最后一个,栈是一种很重要的逻辑结构,既能够用顺序存储实现也能够由链式存储实现。所以,答案就是D。

    存储结构的核心是:只有这四种,我要我觉得,再也没有其他的可能了。

    最后

    以上就是文章的所有内容了。如果你仍有疑问,欢迎随时留言,或者后台@我。

    如果你喜欢我的文章,欢迎关注我的微信公众号:最高权限比特流

    公号专注”计算机专业大学生成长,在这里,希望你能够收获知识,能够体悟程序人生。“

    虽然我们此刻仍然弱小,但希望我们能够一路前行,一起成长!

    ”愿你走出半生,归来仍是少年。“

    公众号

    展开全文
  • 数据库设计-逻辑结构设计

    千次阅读 2022-04-30 20:48:29
    文章目录数据库设计-逻辑结构设计ER图转换成关系模式集的算法步骤1 实体类型的转换步骤2 联系类型的转换二元联系类型的转换(重点)一元联系类型的转换三元关系类型的转换采用ER模型的逻辑设计步骤 数据库设计-逻辑...

    数据库设计-逻辑结构设计

    ER图转换成关系模式集的算法

    步骤1 实体类型的转换

    • 将每个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体标识符即为关系模式的键(码,主键)

    步骤2 联系类型的转换

    • 不同的情况做不同的处理

    二元联系类型的转换(重点)

    • 举例

    • 第一步 将实体类型转换为关系模式

    • 第二步 关系转换 在一方加入另一方的主键作为外键

      • 系-教师主管关系) 1:1关系 随便加

        • (关系模式)加入系主任教工号属性
      • 系-教师聘用关系) 1:n关系 在多方加入1方的主键

        • 教师(关系模式)中加入所在系编号属性
      • 系-课程(开设关系)1:n关系 在多方加入1方的主键

        • 课程(关系模式)中加入所在系编号属性
      • 教师-课程(任教关系)m:n关系 联合作为主键新建一个关系模式

        • 新建关系模式:

        • 任教(教工号,课程号,教材)

        • (教工号,课程号)为候选码,同时每个都是外键

    • 结果

    一元联系类型的转换

    与二元关系类型的转换类似

    • 例1

    • 例23

    三元关系类型的转换

    采用ER模型的逻辑设计步骤

    1. 导出初始关系模式集
    2. 规范化处理
      1. 注意考察关系模式
      2. 判断他们是否满足规范要求
    3. 模式评价
    4. 模式修正
    5. 设计子模式

    展开全文
  • 数据的逻辑结构和存储结构(物理结构)详解什么是数据结构数据的逻辑结构集合线性结构树形结构图形结构数据的物理结构(存储结构)1、顺序存储结构2、链式存储结构3、索引存储结构4、链式存储结构存储结构特点顺序存储...
  • 逻辑结构与物理结构

    千次阅读 2020-03-20 20:20:29
    逻辑结构:简单的来说,逻辑结构就是数据之间的关系。逻辑结构常见有四种类型:集合结构,线性结构,树形结构,图形结构。 所谓集合结构:表面意思,没有什么深刻意义,就是数据元素同属一个集合,单个数据...
  • 最近在学习数据结构,有必要对自己这两天的学习做一个总结,今天就来总结下,数据结构的逻辑结构 按照分类标准的不同,我们把数据结构分为逻辑机构和存储结构,今天主要讲解逻辑结构 逻辑结构:是指数据对象中的...
  • 一、逻辑结构VS物理结构 文件内部各条记录链式存储:由创建文件的用户自己设计的 文件整体用链接分配:由操作系统决定 索引文件:从用户视角来看,整个文件依然是连续存放的。如:前1MB存放索引项,后续部分存放记录...
  • 最近在看考研数据结构,发现关于逻辑结构和存储结构这点不是很懂,然后百度找了一下,发现一篇非常详细的文章,转载一下,转载博客地址:http://c.biancheng.net/view/7524.html。
  • mysql的逻辑结构

    千次阅读 2022-03-12 13:27:02
    1.总述: 和其它数据库有所不同,MySQL 的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上,『插件式』的『存储引擎架构』将查询和其它的系统任务以及数据的存储提取相分离。...
  • 数据库逻辑结构设计

    千次阅读 2022-04-30 20:53:39
    层次模型:类似与树状结构,一层一层。 网状模型:类似一个散装的点可以互相连接。 关系模型:关系属性的名称、然后对应的属性。类似与二维表 目或度:关系模式中属性的个数。 候选码(候选...
  • 逻辑结构设计

    千次阅读 2021-06-30 13:19:26
    说人话——一张数据表的表结构所符合的某种设计标准的级别。 数据库范式分为1NF,2NF,3NF,BCNF,4NF,5NF。 BCNF:Boyce-Codd Normal Form(巴斯-科德范式) 符合高一级范式的设计,必定符合低一级范式。例如符合...
  • 数据元素之间的逻辑关系的整体称为数据的逻辑结构。现实中,数据元素的逻辑关系千变万化,而数据结构课程中讨论的逻辑关系主要是指数据元素之间的相邻关系,如果两个数据元素是相邻的,说明它们之间是有关系的,否则...
  • 数据结构分别为逻辑结构、存储结构(物理结构)和数据的运算。1.数据的逻辑结构是从具体问题抽象出来的数学模型,是描述数据元素及其关系的数学特性的,有时就把逻辑结构简称为数据结构。数据必须在计算机内存储,数据...
  • 逻辑结构是什么?
  • 数据的逻辑结构和存储结构

    千次阅读 2019-09-07 21:50:35
    (一)数据的逻辑结构 1,集合:数据元素之间无其他的关系,仅仅属于同一集合而已 2,线性结构:数据元素之间存在一一对应的关系,其开始节点和终端节点具有唯一性,除了开始开始节点和终端节点,其他的元素有且仅有...
  • 逻辑结构与存储结构关系

    千次阅读 2021-01-21 16:49:13
    逻辑结构是数据元素之间的关系,存储结构是数据元素一起关系在计算机中的存储方式。 逻辑结构 逻辑结构是数据元素之间抽象化的关系,与数据的存储无关,独立于计算机,它是从具体问题中抽象出来的数学模型。 集合 ...
  • 1.逻辑结构逻辑结构分为四种类型:集合结构,线性结构,树形结构,图形结构。 1.1 所谓集合结构: 表面意思,没有什么深刻意义,就是数据元素同属一个集合,单个数据元素之间没有任何关系。如下图所示。 ...
  • 数据结构之逻辑结构和物理结构

    千次阅读 2020-01-16 10:21:36
    1 逻辑结构 逻辑结构是指数据对象中数据元素之间的相互关系。逻辑结构分为以下四种: 1.1集合结构 集合结构中的数据元素除了同属于一个集合外,他们之前没有其他关系。各个元素数据是平等的,他们的共同属性是“同...
  • 浅谈文件的逻辑结构

    千次阅读 2020-11-24 11:04:34
    文件的逻辑结构 文件的两种逻辑结构 从用户观点出发观察到的文件组织结构称为文件的逻辑结构逻辑结构的文件称逻辑文件。 (1)流式文件(无结构文件) 把文件视为有序的字符集合,其内部不再对信息进行组织划分,...
  • 数据结构 - 逻辑结构和存储结构

    万次阅读 2017-10-15 22:18:18
    程序=算法+数据结构 N.沃思(Niklaus Wirth)教授提出:  程序=算法+数据结构  以上公式说明了如下两个问题:  (1)算法决定如何构造和组织数据(算法→数据结构)。  (2)算法的选择依赖于作为基础的...
  • 数据结构中的逻辑结构和物理结构

    千次阅读 多人点赞 2019-06-18 10:56:28
    按照视点的不同,我们把数据结构分为逻辑结构和物理结构。 一、逻辑结构:是指数据对象中数据元素之间的相互关系。 逻辑结构分为以下四种: 1、集合结构:集合结构中的数据元素除了同属于一个集合外,它们之间...
  • 经过优化之后,得到的基本E-R图如下所示,至此可以开始逻辑结构的设计。 关系模式转换. 前面的得到了教务管理系统的基本E-R图,后续进行关系数据库逻辑设计就是要得到一组关系模式的集合,所以将E-R图转换为关系...
  • 数据结构(一)逻辑结构和存储结构

    千次阅读 多人点赞 2020-08-08 11:11:53
    逻辑结构:数据的逻辑结构是对数据之间关系的描述,与存储结构无关,同一种逻辑结构可以有多多种存储结构。 逻辑结构主要分为两大类:线性存储结构和非线性存储结构 线性存储结构是数据元素有序集合,数据结构之间...
  • 数据结构的逻辑结构和物理结构

    千次阅读 2020-07-06 22:00:33
    逻辑结构分为四种类型:集合结构,线性结构,树形结构,图形结构。 1.1 所谓集合结构: 表面意思,没有什么深刻意义,就是数据元素同属一个集合,单个数据元素之间没有任何关系。如下图所示。 1.2 线性结构: 类似于...
  • 逻辑结构和存储结构

    千次阅读 2019-01-23 12:07:14
    百度百科:数据结构具体指同一类数据元素中,各元素之间的相互关系,包括三个组成成分,数据的逻辑结构,数据的存储结构和数据运算结构。结合今天在复习过程中新的理解,主要总结一下逻辑结构和存储结构。 什么是...
  • 逻辑结构的四种基本关系

    千次阅读 2021-07-06 19:10:42
    逻辑结构的四种基本关系 1集合结构:数据元素之间除了“属于同一集合”的关系外,没有其他关系 2线性结构:数据元素之间存在一对一的关系 3树结构:数据元素之间存在一对多的关系 4图结构:数据元素之间存在多对多的...
  • 数据的逻辑结构和存储结构是密不可分的两个方面,一个算法的设计取决于所选定的逻辑结构,而算法的实现依赖于所采用的存储结构。 二、逻辑结构和物理结构(存储结构) 1.逻辑结构 1)定义 逻辑结构是指数据对象中...
  • 数据结构之逻辑结构体系框图

    千次阅读 2020-08-24 16:03:19

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,580,996
精华内容 632,398
关键字:

逻辑结构

友情链接: Minecraft.zip