标签: traversal

如何在TreeView中选择某个子节点,C#

我在选择某个子节点时遇到问题.

我想要实现的目标:例如,我有这个树视图(一个父节点有两个子节点):

-Child值为5
-Child值为2.

我想添加这两个值并将它们分配给父节点:

父结果7
-Child 5
-Child 2.

当然,更大的树视图会有几个父母和很多孩子,他们都会加起来一个根节点.

我怎样才能做到这一点??请帮助.

谢谢,
卡斯拉夫

c# treeview traversal

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

通过一次遍历获取单向链表中的随机元素

我有一个方向链表而不知道它的大小.

我想在这个列表中得到一个随机元素,我只有一次机会遍历列表.(我不允许遍历两次或更多次)

这个问题的算法是什么?谢谢!

random algorithm traversal

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

遍历DOM树

由于大多数(所有?)进行HTML清理的PHP库(如HTML Purifier)严重依赖于正则表达式,我认为尝试编写使用DOMDocument和相关类的HTML清理程序将是一个值得的实验.虽然我现在处于非常早期的阶段,但到目前为止,该项目显示了一些希望.

我的想法围绕一个类,该类使用DOMDocument遍历提供的标记中的所有节点,将它们与白名单进行比较,并删除不在白名单上的任何内容.(第一个实现是非常基本的,只根据类型删除节点,但我希望能够更加复杂并分析节点的属性,链接是否会在将来对不同域中的项进行寻址等).

我的问题是如何遍历DOM树?据我所知,DOM*对象有一个childNodes属性,所以我需要在整个树上进行递归吗?此外,DOMNodeLists的早期实验表明,您需要非常小心删除的顺序,否则您可能会留下项目或触发异常.

如果有人有使用PHP操作DOM树的经验,我会很感激您对该主题的任何反馈.

编辑:我为我的HTML清理类构建了以下方法.它以递归方式遍历DOM树并检查找到的元素是否在白名单中.如果不是,则将其删除.

我遇到的问题是,如果删除节点,DOMNodeList中所有后续节点的索引都会发生变化.简单地从下到上工作可以避免这个问题.目前它仍然是一种非常基本的方法,但我认为它显示出了希望.它肯定比HTMLPurifier快得多,尽管Purifier做了很多东西.

/**
 * Recursivly remove elements from the DOM that aren't whitelisted
 * @param DOMNode $elem
 * @return array List of elements removed from the DOM
 * @throws Exception If removal of a node failed than an exception is thrown
 */
private function cleanNodes (DOMNode $elem)
{
    $removed    = array ();
    if (in_array ($elem -> nodeName, $this -> whiteList))
    {
        if ($elem -> hasChildNodes ())
        {
            /*
             * Iterate over the element's children. …
Run Code Online (Sandbox Code Playgroud)

php dom traversal

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

使用Gremlin在图中找到避开给定顶点列表的最短路径?

我需要使用Gremlin找到两个节点(顶点)之间的最短路径,同时避免给定顶点的列表.

我已经有了:

v.bothE.bothV.loop(2){!it.object.equals(y)}.paths>>1

获得我的最短路径.

我正在尝试这样的事情:

v.bothE.bothV.filter{it.name!="ignored"}.loop(3){!it.object.equals(y)}.paths>>1

但它似乎没有用.

请帮忙!!!

traversal graph neo4j gremlin

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

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万
查看次数

将嵌套集模型转换为<ul>但隐藏"已关闭"子树

基于将修改后的预订树遍历模型(嵌套集)转换为<ul>

其中一个答案给出了正确的代码来显示完整的树.我需要的是始终显示第一级(深度= 0)和兄弟姐妹+孩子的活动列表项.目标是当用户选择列表项时扩展树的可见部分,该列表项是更多列表项的父项.

所以,如果我有这个清单:

1. item
2. item
  2.1. item
  2.2. item
    2.2.1. item
    2.2.2. item
    2.2.3. item
  2.3. item
  2.4. item
    2.4.1. item
    2.4.2. item
3. item
4. item
  4.1. item
  4.2. item
    4.2.1. item
    4.2.2. item
5. item
Run Code Online (Sandbox Code Playgroud)

如果当前列表项为"2",则列表应如下所示:

1. item
2. item // this needs class .selected
  2.1. item
  2.2. item
  2.3. item
  2.4. item
3. item
4. item
5. item
Run Code Online (Sandbox Code Playgroud)

如果当前列表项是"2.2.",列表应如下所示:

1. item
2. item // this needs class .selected
  2.1. item
  2.2. item // …
Run Code Online (Sandbox Code Playgroud)

html php arrays traversal nested-sets

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

对角线穿过阵列

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

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万
查看次数

遍历和过滤haskell中的树

我是Haskell的新手(仍在努力完全理解monads).我有一个问题,我有一个树状的结构

type Tree = [DataA]

data DataA =  DataA1 [DataB] 
            | DataA2 String 
            | DataA3 String [DataA]
               deriving Show

data DataB =  DataB1 [DataA] 
            | DataB2 String 
            | DataB3 String [DataB]
               deriving Show
Run Code Online (Sandbox Code Playgroud)

我想要做的是能够遍历这个并生成一个带过滤器的新树.例如,我可能想要将树中的所有DataB2更改为"foo".

我已经看到了树在同一数据部分中的示例,并且构造函数是相似的.

在python世界中,我只是遍历列表,匹配我需要的任何东西,并替换值.

在Haskell中我猜我需要能够复制我的树,但是你如何处理隐藏在构造函数和不同数据类型中的列表?

tree haskell traversal generic-programming

8
推荐指数
1
解决办法
2092
查看次数

打印免费monad

可以将一个自由monad转换为任何其他monad,但是给定一个类型的值Free f x,我想打印整个树,而不是将生成的AST的每个节点映射到另一个monad中的某个其他节点.

Gabriel Gonzales 直接使用该值

showProgram :: (Show a, Show r) => Free (Toy a) r -> String
showProgram (Free (Output a x)) =
    "output " ++ show a ++ "\n" ++ showProgram x
showProgram (Free (Bell x)) =
    "bell\n" ++ showProgram x
showProgram (Free Done) =
    "done\n"
showProgram (Pure r) =
    "return " ++ show r ++ "\n"
Run Code Online (Sandbox Code Playgroud)

可以抽象为

showF :: (x -> b) -> ((Free f x -> b) -> f (Free f …
Run Code Online (Sandbox Code Playgroud)

monads haskell traversal free-monad

8
推荐指数
1
解决办法
146
查看次数

实体框架核心遍历大Blob数据而没有内存溢出,最佳实践

我正在编写遍历大量图片数据的代码,并准备了一个大的增量块,其中包含所有压缩后用于发送的数据。

这是关于如何将这些数据作为示例

[MessagePackObject]
public class Blob : VersionEntity
{
    [Key(2)]
    public Guid Id { get; set; }
    [Key(3)]
    public DateTime CreatedAt { get; set; }
    [Key(4)]
    public string Mediatype { get; set; }
    [Key(5)]
    public string Filename { get; set; }
    [Key(6)]
    public string Comment { get; set; }
    [Key(7)]
    public byte[] Data { get; set; }
    [Key(8)]
    public bool IsTemporarySmall { get; set; }
}

public class BlobDbContext : DbContext
{
    public DbSet<Blob> Blob { get; set; }

    protected …
Run Code Online (Sandbox Code Playgroud)

c# blob traversal out-of-memory entity-framework-core

8
推荐指数
1
解决办法
118
查看次数