当前位置:  开发笔记 > 编程语言 > 正文

什么是循环数据结构有用?

如何解决《什么是循环数据结构有用?》经验,为你挑选了2个好方法。

我刚刚阅读了Mark Lutz的"学习Python",并且遇到了这个代码示例:

>>> L = ['grail']
>>> L.append(L)
>>> L
['grail', [...]]

它被确定为循环数据结构.

所以我很想知道,这是我的问题:

什么是用于现实生活编程的"循环数据结构"?

似乎有点混乱,我认为这源于非常简短的代码示例...这里有几行使用相同的对象L

>>> L[0]
'grail'
>>> L[1][0]
'grail'
>>> L[1][1][0]
'grail'

Charlie Mart.. 18

许多事.循环缓冲区,例如:你有一些带有正面和背面的数据集合,但是有任意数量的节点,而最后一个节点的"下一个"项目应该会带你回到第一个.

图结构通常是循环的; acyclicity是一个特例.例如,考虑一个包含旅行商问题中所有城市和道路的图表.


好的,这是一个特殊的例子.我在科罗拉多州建立了一系列城镇:

V=["Boulder", "Denver", "Colorado Springs", "Pueblo", "Limon"]

然后,我建立了一对连接它们的道路.

E=[["Boulder", "Denver"],
   ["Denver", "Colorado Springs"],
   ["Colorado Springs", "Pueblo"],
   ["Denver", "Limon"],
   ["Colorado Springs", "Limon"]]

这有一堆循环.例如,您可以从科罗拉多斯普林斯,利蒙,丹佛,然后返回科罗拉多斯普林斯.

如果您创建的数据结构包含V中的所有城市和E中的所有道路,那么这就是图形数据结构.该图表将具有周期.



1> Charlie Mart..:

许多事.循环缓冲区,例如:你有一些带有正面和背面的数据集合,但是有任意数量的节点,而最后一个节点的"下一个"项目应该会带你回到第一个.

图结构通常是循环的; acyclicity是一个特例.例如,考虑一个包含旅行商问题中所有城市和道路的图表.


好的,这是一个特殊的例子.我在科罗拉多州建立了一系列城镇:

V=["Boulder", "Denver", "Colorado Springs", "Pueblo", "Limon"]

然后,我建立了一对连接它们的道路.

E=[["Boulder", "Denver"],
   ["Denver", "Colorado Springs"],
   ["Colorado Springs", "Pueblo"],
   ["Denver", "Limon"],
   ["Colorado Springs", "Limon"]]

这有一堆循环.例如,您可以从科罗拉多斯普林斯,利蒙,丹佛,然后返回科罗拉多斯普林斯.

如果您创建的数据结构包含V中的所有城市和E中的所有道路,那么这就是图形数据结构.该图表将具有周期.



2> Mark A. Nico..:

我最近创建了一个循环数据结构来表示八个基本和有序方向.它对每个方向都有用,可以了解它的邻居.例如,Direction.North知道Direction.NorthEast和Direction.NorthWest是它的邻居.

这是循环的,因为每个neighor知道它的邻居,直到它全速摆动(" - >"表示顺时针):

北 - >东北 - >东 - >东南 - >南 - >西南 - >西 - >西北 - >北 - > ...

注意我们回到了北方.

这允许我做这样的事情(在C#中):

public class Direction
{
    ...
    public IEnumerable WithTwoNeighbors
    {
        get {
           yield return this;
           yield return this.CounterClockwise;
           yield return this.Clockwise;
        }
    }
}
...
public void TryToMove (Direction dir)
{
    dir = dir.WithTwoNeighbors.Where (d => CanMove (d)).First ()
    Move (dir);
}

事实证明这非常方便,并且使许多事情变得复杂得多.

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有