今天百度翻了一下线性表数据结构,里面写道:
我们说“线性”和“非线性”,只在逻辑层次上讨论,而不考虑存储层次,所以双向链表和循环链表依旧是线性表。
所以,究竟什么是“逻辑上”?
1
maichael 2018-10-31 14:11:13 +08:00
理论上和实际上?
|
2
likuku 2018-10-31 14:16:05 +08:00
抽象化 vs 具体实现 ?
|
3
noNOno 2018-10-31 14:18:06 +08:00 1
合理就是逻辑上.
推理了解一下 |
4
p2pCoder 2018-10-31 14:18:21 +08:00
双向链表和循环链表 依旧满足逻辑上线性表的定义,除了 start 和 end 两个元素,都是 1 对 1 前后链接
|
5
wizardoz 2018-10-31 14:22:02 +08:00
双向链表、单链表、数组都是一种具体的数据结构,他们提供了对一个有序序列的不同操作能力。但是从逻辑上说,有序序列是一个东西。
|
6
Danielhu229 2018-10-31 14:27:32 +08:00
你已经自问自答了,所谓逻辑上指的是,忽略存储上是否在内存中连续排列,比如是否存储在一个连续的内存区域,而只关心一些查询,比较,排序等操作的复杂性,在这一点上,是否在内存中连续不影响线性表的性质
|
7
geelaw 2018-10-31 14:30:42 +08:00 via iPhone
就是你怎么想、观察、对待一个对象。
举例:二叉树是一种层次对象,不会因为你用数组实现了一个满二叉树就变成了线性表。 |
8
zealot0630 2018-10-31 14:32:23 +08:00
线性表 是 没有分叉的树
树 是 没有环的图 你理解一下 |
9
whwq2012 2018-10-31 14:33:09 +08:00 via Android
数据结构的入门就是逻辑结构和物理结构啊。。推荐你看赵海英视频
|
10
jswh 2018-10-31 14:33:17 +08:00
程序中的逻辑上,一般是指某一个抽象层次上,个人感觉。
|
11
zealot0630 2018-10-31 14:35:27 +08:00
上面说图不准确 应该说连通图
另外补充一下,逻辑上面的树是不指定树根的,两棵树形状一样,就是相同的树 |
12
1a0ma0 2018-10-31 14:46:31 +08:00 via iPhone
内存是线性的呀…… 楼主没学硬件方面的课吗?
|
13
STRRL 2018-10-31 14:47:51 +08:00 via Android
这么理解 设计上 和 实现上
|
14
waytoshine 2018-10-31 15:01:57 +08:00 1
“逻辑上”:是抽象层面上,纸上谈兵的东西
“实现上”:物理实现上(计算机内存如何为这种逻辑结构提供存储的形式,也就是存储的实现) 我透,“逻辑”这个词都算是一种思维上的元词了,楼主竟然问元词是啥意思。。。只能说,就是这个意思啊。。。 |
15
wutiantong 2018-10-31 15:45:11 +08:00 1
究竟什么是“逻辑上”?
这个问题不好回答,正如楼上所说,“元词”的问题,很难讲清楚的。 但是,单就楼主贴出的那句话来说: “只在逻辑层次上讨论” 要表达的意思就是后面的“不考虑存储层次”。 这里所讨论的本质上是个语文问题: 我们可以把原文变换成:「我们讨论“线性”和“非线性”时并不考虑存储层次,所以双向链表和循环链表依旧是线性表。」意思是完全相同的。 “只在逻辑层次上讨论”这几个字在整句中并没有引入任何额外的含义,而且指代的意义也是模糊不清的,因此这大概只是原文作者的口癖抑或是为了彰显逼格罢了。 |
17
geelaw 2018-10-31 23:34:19 +08:00 via iPhone
@zealot0630 #8 “没有分杈”是有根树才有的概念,你想说的是“度为 1 的节点不超过两个”。
|