标签: traversal

C#图遍历

该算法在遍历图中的节点方面做得很好.

Dictionary<Node, bool> visited = new Dictionary<Node, bool>();

Queue<Node> worklist = new Queue<Node>();

visited.Add(this, false);

worklist.Enqueue(this);

while (worklist.Count != 0)
{
    Node node = worklist.Dequeue();

    foreach (Node neighbor in node.Neighbors)
    {
        if (!visited.ContainsKey(neighbor))
        {
            visited.Add(neighbor, false);
            worklist.Enqueue(neighbor);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以用它来查找图中的目标节点.工作清单在处理工作清单时将项目列出(或弹出).找到目标后,如何返回节点的完整路径?

更新 我试图弄清楚如何反转根路径.在根节点上调用该方法,之后,子节点可能有两个父节点,因此它不像在每个节点上调用父属性并遍历备份那么简单.

该方法的目标是找到路径,而不是迭代所有节点,或检查节点是否存在.

c# traversal graph

10
推荐指数
1
解决办法
9644
查看次数

对角条中的横向矩形矩阵

我需要在这里完成同样的事情,但是要使用任何矩阵,而不仅仅是方形矩阵.此外,遍历的方向需要相反.我试着编辑我在那里找到的代码,但无法弄明白.

谢谢.

traversal matrix

10
推荐指数
1
解决办法
6633
查看次数

php jquery喜欢选择器引擎

有没有人知道一个库允许DOM使用类似选择器引擎的jquery遍历字符串?

php dom traversal css-selectors

10
推荐指数
1
解决办法
1万
查看次数

将JavaScript'this'转换为jQuery'$(this)'

请看下面的代码:

<HTML>
    <HEAD>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>

        <SCRIPT type="text/javascript">
            function test(target) {     alert(target.nodeName); }
        </SCRIPT>
    </HEAD>

    <BODY>
        <DIV>
            <ul>
                <li onclick="test(this)">This is fair</li>
                <li onclick="test(this)">No its not</li>
                <li onclick="test(this)">Why not</li>
                <li onclick="test(this)">Becoz...</li>
            </ul>
        </DIV>
    </BODY>
</HTML>
Run Code Online (Sandbox Code Playgroud)

功能测试接收目标(li节点)作为参数.

现在,我可以以某种方式将此变量转换为jQuery $(this)$(e.target)任何其他jQuery变量,以便我可以使用jQuery方式遍历文档吗?

html javascript jquery traversal

10
推荐指数
1
解决办法
2万
查看次数

使用Scala进行N树遍历会导致堆栈溢出

我试图从N树数据结构返回一个小部件列表.在我的单元测试中,如果我有大约2000个小部件,每个小部件都有一个依赖,我会遇到堆栈溢出.我认为正在发生的是for循环导致我的树遍历不是尾递归.什么是在scala中写这个的更好方法?这是我的功能:

protected def getWidgetTree(key: String) : ListBuffer[Widget] = {
  def traverseTree(accumulator: ListBuffer[Widget], current: Widget) : ListBuffer[Widget] = {
    accumulator.append(current)

    if (!current.hasDependencies) {
      accumulator
    }  else {
      for (dependencyKey <- current.dependencies) {
        if (accumulator.findIndexOf(_.name == dependencyKey) == -1) {
          traverseTree(accumulator, getWidget(dependencyKey))
        }
      }

      accumulator
    }
  }

  traverseTree(ListBuffer[Widget](), getWidget(key))
}
Run Code Online (Sandbox Code Playgroud)

tree recursion scala traversal

10
推荐指数
1
解决办法
2414
查看次数

Traversable法则能否源于每个Traversable都是Functor的事实?

我一直在想为什么Traversable类型类需要a FunctorFoldable,而不仅仅是Foldable,因为它不使用任何部分Functor

class (Functor t, Foldable t) => Traversable t where
    traverse  :: Applicative f => (a -> f b) -> t a -> f (t b)
    sequenceA :: Applicative f => t (f a) -> f (t a)
Run Code Online (Sandbox Code Playgroud)

似乎Traversable的法则没有出现在基础4.6的文档中,这使我认为它们可以源于每个Traversable都是Functor的事实?

迭代器模式论文本质(第5.1节)中,它指出有一些自由定理traverse直接来自它的类型,但本文没有深入描述为什么会出现这种情况.

Traversable 基础4.7文档中描述法律来自何处?

theory haskell traversal

10
推荐指数
1
解决办法
294
查看次数

打印由给定函数计算的每个级别的特定节点

在一次采访中,我获得了一个功能:

f(n)= square(f(n-1)) - square(f(n-2)); for n>2
f(1) = 1;
f(2) = 2;
Here n is the level of an n-array tree. f(n)=1,2,3,5,16...
Run Code Online (Sandbox Code Playgroud)

对于n给定N-Array的每个级别,我必须在每个级别打印f(n)节点.例如:

At level 1 print node number 1 (i.e. root) 
At level 2 print node number 2 (from left)
At level 3 print node number 3 (from left)
At level 4 print node number 5... and so on
Run Code Online (Sandbox Code Playgroud)

如果number of nodes(say nl)在任何级别nless than f(n),则必须打印node number nl%f(n) …

java algorithm tree traversal data-structures

10
推荐指数
1
解决办法
248
查看次数

Is there an efficient, lazy way to fuse foldMap with traverse?

A recent proposal on the Haskell libraries mailing list led me to consider the following:

ft :: (Applicative f, Monoid m, Traversable t)
   -> (b -> m) -> (a -> f b) -> t a -> f m
ft f g xs = foldMap f <$> traverse g xs
Run Code Online (Sandbox Code Playgroud)

I noticed that the Traversable constraint can be weakened to Foldable:

import Data.Monoid (Ap (..))  -- Requires a recent base version

ft :: (Applicative f, Monoid m, Foldable t)
   -> …
Run Code Online (Sandbox Code Playgroud)

haskell traversal fold

10
推荐指数
1
解决办法
133
查看次数

javascript选择器

如何在javascript中选择DOM元素?
例如:

<div class="des">
    <h1>Test</h1>
        <div class="desleft">
          <p>Lorem Ipsum.</p>
        </div>
        <div class="Right">
           <button>Test</button>
        </div>
</div>
Run Code Online (Sandbox Code Playgroud)

现在我该如何选择h1?这只是较大页面的一部分,因此无法使用getElementsByTagName(),因为其他页面可能会被选中.此外,由于h1稍后文档中可能还有其他内容,我无法将索引(正文)附加到上面.

有没有一种简单的方法可以选择,比如<h1>哪个标签属于desleft?我不能使用jQuery或任何其他库.

javascript dom traversal selector

9
推荐指数
4
解决办法
3万
查看次数

对角线穿过阵列

我有一个任意大小的大数组.这是一个方阵.我试图掌握如何沿着对角线遍历它/而不是\(我已经知道该怎么做).到目前为止,我有以下代码:

char[][] array = new char[500][500];
//array full of random letters
String arrayLine = "";
for (int y = 0; y < array.length; y++) {
    for (int x = 0; x < array.length; x++) {
        for (???) {
            arrayLine = arrayLine + array[???][???];
        }
    }
    System.out.println(arrayLine);
}
Run Code Online (Sandbox Code Playgroud)

我有三个循环,因为这是我做另一个对角线的方式:

for (int y = 0; y < array.length; y++) {
    for (int x = 0; x < array.length; x++) {
        for (int z = 0; z < array.length-y-x; …
Run Code Online (Sandbox Code Playgroud)

java arrays traversal

9
推荐指数
1
解决办法
1万
查看次数