Articles of 数据结构

创buildNPM链接实用程序 – 从下到上跟踪依赖关系

我正在创build一个NPM链接实用程序 我有一个软件包取决于大约7或8个本地开发的软件包。 我使用NPM链接将它们链接在一起。 这是目前手动,并已成为乏味,想用自动化实用程序。 我相信最好的做法是开始链接没有依赖关系的包,然后工作到最依赖的包。 看起来像这样: A (my main NPM project) / \ \ / \ \ BCH __ / \ / \ \ / \ / \ \ DEIJK \ / \ / \ / F 假设 – 我应该从树的底部开始,向上工作。 我可以使用哪些数据结构/algorithm来轻松实现? 考虑到上面的树, 有效的代码将如下所示: # start with F and work upwards cd F && npm link […]

在Javascript中防止数组中的循环引用

我有一个像下面这样的数据结构。 array=[ {id:"a",children:[ {id:"b",children:[ {id:"d",children:[]}]}, {id:"c",children:[]}]} ] 如果我想在“c”(“a”,“e”没有string,但是节点的副本)中插入元素{id:"e", children:["a","f"] ,检查它是否存在于上层树中,因此会创build一个循环引用。 所以我觉得我必须反向走arrays。 但是因为我对JavaScript和Node很新,所以我不知道该怎么做。 这会是一个好主意,创build一个数组,我将所有的依赖存储在? 像这样的东西: [ a:[], b:[a], c:[a,b] d:[a,b] ] 那么我可以查找数组中的父级,并会看到在c中,a和b已经依赖

在Redis中存储事件时间表

我想在Redis的时间表中存储事件列表。 我正在考虑自1970年以来的sorting集,以秒为单位进行评分,允许快速查找和范围search。 问题是,我希望每个事件代表一个对象,用几个键(大概3个也许),所以我会存储一个有序的一组ID – 应用程序然后将查找基于ID的哈希。 所以谈话会是这样的: > ZRANGEBYSCORE events start end 1) "16" 2) "17" > HGETALL events:16 1) "key1" 2) "val1" … > HGETALL events:17 … 有没有更好的方法来组织或做一些事情,避免应用程序对每个结果单独调用。 一切都可以在redis服务器端完成,以避免这种开销? 这是一个大问题吗? PS。 我正在使用节点客户端,但我的问题也适用于其他语言。

如何用MongoDB构buildrecursion结构

我试图做一些通常简单的SQL(例如,在同一个表中的外键)(这可能是与MongoDB一样简单,我只是不知道),这是build立一个recursion数据结构。 在这个例子中,我将讨论网站中的页面。 我想做一个多层次的页面结构。 所以可能有: 家 我们的产品 产品1 产品2 关于我们 我们在哪? 联系我们 比方说,网页将有一个标题和一个内容。 我需要知道什么是最好的方法来做到这一点,也是我可以build立一个基于该数据结构(显示每个级别的每个页面的页面)的网站地图。 我正在为MongoDB构build一个node.js应用程序。 编辑:它不会通过简单地引用每页中的父页面工作? 页面会像{ title: 'test', content: 'hello world', parentPage: ObjectID(parent page) } 谢谢您的帮助!

使用javascript的Bliffoscope数据分析解决scheme

我想解决使用JavaScript的Bliffoscope数据分析问题。 我有以下问题。 这是SlimeTorpedo + + +++ +++++++ ++ ++ ++ + ++ ++ +++ ++ ++ + ++ ++ ++ +++++++ +++ 这是TestData + + + ++ + +++ + + + ++ + + ++++ + + + + + + +++ +++ + + + + ++ ++ ++ + ++ + + […]

在JavaScript中什么树距离库?

我正在寻找一个图书馆,实施任何似乎有据可查的*策略计算树木之间的距离。 例如,图书馆应该显示这两棵树 aa / \ / \ bcbc \ d 比这两个更“相似” ax / \ / \ bcyz 我使用node.js,所以一个节点的实现将是很好的。 我知道“类似”看起来有点模棱两可,但不pipe用什么策略来计算这些树之间的差异,我假设你总是会得到一些最终的“分数”,如果表示一个编辑距离在第二种情况下比在第一种情况下更大。 什么node.js库做这样的事情? 编辑:在我的具体情况的一些增加的信息:这是为了检测HTML文档中的重复树结构,所以更专门针对这个问题的库会更好。 编辑2:即使是一个levenshtein距离库node.js会帮助,所以我可以至less比较树的指纹文本。 *我是这个领域的新手,但是scribd.com讨论了Lu和Tai使用的策略。

什么是autosuggest最合适的数据结构?

我想实现一个自动提示组件。 对于每个用户input,组件应该提供零个或多个build议。 例如,如果用户键入'park' ,build议可以是: ['Parkville', 'Parkwood', 'Bell Park'] 。 要求很简单: 它应该是不区分大小写的(用户应该对'park' , 'PARK'和'PaRk'有相同的build议) 它应该匹配在每个词的开头( 'pa'将匹配'Parkville' , 'Bell Park' , 'Very cool park' , 但不是 'Carpark' ) 你会select什么样的数据结构来实现这个在Javascript中? 有没有Javascript / Node.js库可以帮助?

这个数据结构是以列表forms出现的,但是具有键值对?

我已经在几个节点的例子中看过几次,但是我从来不知道该怎么做。 一个例子是一个net.Socket 。 数据侦听器发出警告后,这是一个套接字。 > commands._events.data [ [Function], warned: true ]; 另一个例子是使用/^(some)(regex)$/.exec("someregex") [ 'someregex', 'some', 'regex', index: 0, input: 'someregex' ] 我不确定我明白这个数据结构是什么。 这是一个列表还是一本字典? 为什么它有索引,还有键值对? 我可以做match.index ,但也match[1] 。 它是如何构build的? (对不起,如果这是一个愚蠢的,无法在谷歌find它)。

节点JS,传统的数据结构? (如设置等),像Java.util节点?

我爱的节点JS,来自Java背景,有兴趣甚至尝试一些项目,其中节点似乎有点延伸,如search引擎项目。 有一件事让我有些困惑,似乎JavaScript缺乏传统的数据结构,例如一个集合,它有一个精确的定义,甚至超越了计算机科学,因为它已经在计算机存在之前用于math(基本上是一个列表不允许重复)。 看起来,当使用节点JS时,没有像Java.util这样的库,这些基本数据types已经习惯了,我意识到我可以自己创build它们,但是这只会增加项目的开销。 有没有解决这个问题的节点(或一般的JavaScript)的库? 我认为node在很多项目中有很大的潜力来替代诸如Java之类的语言,因为它在开发速度方面有如此多的优势,但是必须重新创build在更成熟的平台上被认为是理所当然的数据结构可能是一个小项目的开销太多。 我很抱歉,如果还有其他问题,但我花了一些时间search,并没有提出太多。