V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
twirain
V2EX  ›  程序员

所以,究竟什么是“逻辑上”?

  •  
  •   twirain · 2018-10-31 14:07:32 +08:00 · 2294 次点击
    这是一个创建于 2218 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天百度翻了一下线性表数据结构,里面写道:

    我们说“线性”和“非线性”,只在逻辑层次上讨论,而不考虑存储层次,所以双向链表和循环链表依旧是线性表。

    所以,究竟什么是“逻辑上”?

    18 条回复    2018-10-31 23:35:49 +08:00
    maichael
        1
    maichael  
       2018-10-31 14:11:13 +08:00
    理论上和实际上?
    likuku
        2
    likuku  
       2018-10-31 14:16:05 +08:00
    抽象化 vs 具体实现 ?
    noNOno
        3
    noNOno  
       2018-10-31 14:18:06 +08:00   ❤️ 1
    合理就是逻辑上.
    推理了解一下
    p2pCoder
        4
    p2pCoder  
       2018-10-31 14:18:21 +08:00
    双向链表和循环链表 依旧满足逻辑上线性表的定义,除了 start 和 end 两个元素,都是 1 对 1 前后链接
    wizardoz
        5
    wizardoz  
       2018-10-31 14:22:02 +08:00
    双向链表、单链表、数组都是一种具体的数据结构,他们提供了对一个有序序列的不同操作能力。但是从逻辑上说,有序序列是一个东西。
    Danielhu229
        6
    Danielhu229  
       2018-10-31 14:27:32 +08:00
    你已经自问自答了,所谓逻辑上指的是,忽略存储上是否在内存中连续排列,比如是否存储在一个连续的内存区域,而只关心一些查询,比较,排序等操作的复杂性,在这一点上,是否在内存中连续不影响线性表的性质
    geelaw
        7
    geelaw  
       2018-10-31 14:30:42 +08:00 via iPhone
    就是你怎么想、观察、对待一个对象。

    举例:二叉树是一种层次对象,不会因为你用数组实现了一个满二叉树就变成了线性表。
    zealot0630
        8
    zealot0630  
       2018-10-31 14:32:23 +08:00
    线性表 是 没有分叉的树
    树 是 没有环的图

    你理解一下
    whwq2012
        9
    whwq2012  
       2018-10-31 14:33:09 +08:00 via Android
    数据结构的入门就是逻辑结构和物理结构啊。。推荐你看赵海英视频
    jswh
        10
    jswh  
       2018-10-31 14:33:17 +08:00
    程序中的逻辑上,一般是指某一个抽象层次上,个人感觉。
    zealot0630
        11
    zealot0630  
       2018-10-31 14:35:27 +08:00
    上面说图不准确 应该说连通图

    另外补充一下,逻辑上面的树是不指定树根的,两棵树形状一样,就是相同的树
    1a0ma0
        12
    1a0ma0  
       2018-10-31 14:46:31 +08:00 via iPhone
    内存是线性的呀…… 楼主没学硬件方面的课吗?
    STRRL
        13
    STRRL  
       2018-10-31 14:47:51 +08:00 via Android
    这么理解 设计上 和 实现上
    waytoshine
        14
    waytoshine  
       2018-10-31 15:01:57 +08:00   ❤️ 1
    “逻辑上”:是抽象层面上,纸上谈兵的东西
    “实现上”:物理实现上(计算机内存如何为这种逻辑结构提供存储的形式,也就是存储的实现)
    我透,“逻辑”这个词都算是一种思维上的元词了,楼主竟然问元词是啥意思。。。只能说,就是这个意思啊。。。
    wutiantong
        15
    wutiantong  
       2018-10-31 15:45:11 +08:00   ❤️ 1
    究竟什么是“逻辑上”?
    这个问题不好回答,正如楼上所说,“元词”的问题,很难讲清楚的。

    但是,单就楼主贴出的那句话来说:
    “只在逻辑层次上讨论” 要表达的意思就是后面的“不考虑存储层次”。

    这里所讨论的本质上是个语文问题:
    我们可以把原文变换成:「我们讨论“线性”和“非线性”时并不考虑存储层次,所以双向链表和循环链表依旧是线性表。」意思是完全相同的。
    “只在逻辑层次上讨论”这几个字在整句中并没有引入任何额外的含义,而且指代的意义也是模糊不清的,因此这大概只是原文作者的口癖抑或是为了彰显逼格罢了。
    shylockhg
        16
    shylockhg  
       2018-10-31 15:57:52 +08:00
    逻辑上这里特指的是和实现对应,如
    @geelaw 所说
    geelaw
        17
    geelaw  
       2018-10-31 23:34:19 +08:00 via iPhone
    @zealot0630 #8 “没有分杈”是有根树才有的概念,你想说的是“度为 1 的节点不超过两个”。
    geelaw
        18
    geelaw  
       2018-10-31 23:35:49 +08:00 via iPhone   ❤️ 1
    @geelaw #17 呃,不对,还有一个方向的问题。那应该提醒楼主 #8 第一行和第二行的“树”不是同一个概念。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1175 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 23:00 · PVG 07:00 · LAX 15:00 · JFK 18:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.