小编Plu*_*tor的帖子

真实世界的前/后顺序树遍历示例

我理解预订,有序和后序树遍历算法就好了.(参考).我理解了一些用法:按顺序遍历二进制搜索树,预先克隆树.但我不能为我的生活提出一个现实世界的任务,我需要后序遍历才能完成.

能给我举个例子?并且:你能为我提供更好的预订遍历用途吗?

编辑:除了表达式树和RPN之外,还有谁可以给​​我一个例子吗?这真的是所有的后期订单都有用吗?

algorithm binary-tree tree-traversal postorder

11
推荐指数
1
解决办法
7246
查看次数

在交互式会话中启动Windows服务

一位同事有一个批处理脚本程序,需要在控制台模式下在Windows Server上运行,以便它可以访问Windows交互式会话.服务器会定期自动重启(有一台无关的闭源应用程序在我们无法控制的这台机器上运行).重启后,他想自动启动Windows交互式会话并运行此脚本,此外服务还需要访问网络资源(特别是CIFS驱动器).

这是我们到目前为止所尝试的:

  1. 以Windows服务启动.这种失败,因为Windows服务可以任意访问交互式会话网络资源,但不可能兼顾.
  2. 使用Microsoft管理控制台添加脚本以在启动时运行,但这不起作用.
  3. 使用HKLM注册表项开始运行此脚本,但只有在我们手动打开服务器上的远程桌面会话时才会启动它.
  4. 创建计划任务.调用的程序无法访问交互式Windows会话.

还有其他建议吗?(或许他在设置其中一条建议时错过了什么?)

windows service batch-file

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

交错稀疏排序数组

我有一套事件清单.事件总是以给定的顺序发生,但不是每个事件总是发生.这是一个示例输入:

[[ do, re, fa, ti ],
 [ do, re, mi ],
 [ do, la, ti, za ],
 [ mi, fa ],
 [ re, so, za ]]
Run Code Online (Sandbox Code Playgroud)

输入值没有任何固有顺序.它们实际上是"创建符号链接"和"重新索引搜索"等消息.它们在单个列表中排序,但是没有办法只查看第一个列表中的"fa"和第二个列表中的"mi",并确定哪个位于另一个列表之前.

我希望能够获取该输入并生成所有事件的排序列表:

[ do, re, mi, fa, so, la, ti, za ]
Run Code Online (Sandbox Code Playgroud)

或者更好的是,有关每个事件的一些信息,如计数:

[ [do, 3], [re, 3], [mi, 2],
  [fa, 2], [so, 1], [la, 1],
  [ti, 1], [za, 2] ]
Run Code Online (Sandbox Code Playgroud)

我正在做什么名字?有接受的算法吗?我在Perl中写这个,如果这很重要,但伪代码会这样做.

我知道,根据我的示例输入,我可能无法保证"正确"的顺序.但我真正的输入有万吨以上的数据点,我有信心,有一些聪明这将是95%权(这实在是我所需要的).如果我不需要,我只是不想重新发明轮子.

perl merge list pseudocode

7
推荐指数
1
解决办法
594
查看次数

Hibernate:以一对多关系指定列

我正在尝试为数据库模式构建一个Hibernate层,我基本上无法控制.简化后,有两个表.

parent有两个重要的列:

  • parent_id,整数,主键,自动增量
  • parent_code,字符串,唯一键,由某个黑盒子生成(让我们说这是一个UUID,为了理智)
  • 再加上一堆数据列

child有两个重要的列:

  • child_parent_id,整数,主键,自动增量
  • child_parent_code,string,指向父级parent_code值的外键
  • 再加上一堆数据列

我希望能够调用Parent.getChilds()并获取Child对象的集合.但是设置Hibernate映射文件似乎是不可能的.它使用下面的映射做的是childparent_id值(而不是parent_code)搜索表.

Parent.hbm.xml:

    <set name="childs" inverse="true" lazy="true" table="child" fetch="select">
        <key>
            <column name="child_parent_code" not-null="true" />
        </key>
        <one-to-many class="foo.bar.Child" />
    </set>
Run Code Online (Sandbox Code Playgroud)

Child.hbm.xml:

    <many-to-one name="parent" class="foo.bar.Parent" fetch="select">
        <column name="child_parent_code" not-null="true" />
    </many-to-one>
Run Code Online (Sandbox Code Playgroud)

我花了一个小时仔细阅读我的Java Persistence with Hibernate副本,但我无法弄清楚如何做我想做的事情.可能吗?

java database schema hibernate

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

在强制使用唯一节点属性时进行寻路 - 我应该使用哪种算法?

更新2011-12-28:这是一篇博文,对我试图解决的问题,我的工作以及我目前的解决方案的描述不那么模糊:观看每个MLB团队玩游戏


我正试图解决一种奇怪的寻路挑战.我有一个非循环方向图,每个边都有一个距离值.我想找到一条最短路径.简单吧?好吧,有几个原因我不能只使用Dijkstra或A*.

  1. 我根本不关心路径的起始节点是什么,也不关心结束节点.我只需要一个包含10个节点的路径.但:
  2. 每个节点都有一个属性,让我们说它的颜色.每个节点具有20种不同颜色中的一种.
  3. 我试图找到的路径是最短的路径,正好有10个节点,每个节点都是不同的颜色.我不希望路径中的任何节点具有与任何其他节点相同的颜色.
  4. 能够强制我的路径为其中一个属性赋予一个值(例如,"至少一个节点必须是蓝色")是很好的,但这并不是必需的.

这是一个简化的例子.我的完整数据集实际上有三个不同的属性,每个节点必须都是唯一的,我有2k +节点,每个节点平均有35个传出边.由于获得完美的"最短路径"可能是指数或因子时间,因此穷举搜索实际上不是一种选择.我真正想要的是一些符合#3标准的"良好路径"的近似.

有人能指出我可以使用的算法(甚至修改过)吗?


我的完整数据集的一些统计数据:

  • 总节点:2430
  • 总边数:86524
  • 没有传入边缘的节点:19
  • 没有传出边的节点:32
  • 大多数外围边缘:42
  • 每个节点的平均边缘:35.6(每个方向)
  • 由于数据的性质,我知道图表是非循环的
  • 在完整的数据集中,我正在寻找长度为15而不是10的路径

language-agnostic algorithm path-finding

6
推荐指数
1
解决办法
320
查看次数

我可以知道在unix中的scp命令的退出状态


使用scp命令在perl中进行编程时,
如果你告诉哪个退出值(除了0-成功,1-error)是为了我的生活将是简单的,我面对scp命令的退出状态

unix ssh scp

3
推荐指数
1
解决办法
5635
查看次数

设计复杂的工作流程图

我们有一个令人惊讶的复杂工作流程,需要由具有内部Web应用程序的准技术员工进行监控.大约有30个步骤,其中一些是手动(编辑),一些是半自动停止点(如"已收到文件"或某些模板的客户批准),有些是完全自动化的(文件转换,搜索索引,等等).所有这些步骤的流程图都很庞大而且复杂,三个人可能同时在三个完全不同的步骤上工作.

您如何尽可能向用户提供大量信息?只显示整个图表似乎是蛮力解决方案.但它很大,随着我们做更多的事情,它可能会变大.更不用说在HTML中编码整个图表所需的复杂性.

替代文字

user-interface flowchart

3
推荐指数
1
解决办法
2607
查看次数

来自 bcp 的 ISO-8859-1

我在 SQL Server 2008 R2 的表中获取了数据,并尝试将其输出到 CSV 文件。然后,我必须将此 CSV 文件导入第三方专有系统,该系统要求将此文件编码为 ISO-8859-1。特别是,我们得到了一些带有“\xc5\xa0”字符的值,它是 Windows-1252 中的代码点 8A,但没有出现在 ISO-8859-1 中。我想消除/修复这些字符(以及ISO 标准中未出现的所有其他 8_ 和 9_ 代码点),而无需手动修改文件。完全使用 SQL 或使用 BCP 参数来完成此操作将是理想的选择。

\n\n

我能得到的最接近的 BCP 是使用 Windows-1252:

\n\n
bcp tableName out outputFile.csv -c -C 1252 -t, -S server -T\n
Run Code Online (Sandbox Code Playgroud)\n\n

是否有一个代码页可以给 BCP 来输出 ISO-8859-1?或者我可以应用于表格的排序规则?现在它们正在与 进行整理SQL_Latin1_General_CP1_CI_AS,但我认为这只是我们的默认设置或者是有点任意应用的。

\n

sql-server bcp iso-8859-1 sql-server-2008

3
推荐指数
1
解决办法
4441
查看次数

将用户名和密码传递给get-credential或运行sql查询而不使用Powershell中的invoke-sqlcmd

我正在尝试连接到远程sql数据库,只需在Powershell中运行"select @@ servername"查询.我试图在不使用集成安全性的情况下这样做.我一直在努力使用"get-credential"和"invoke-sqlcmd",但却发现(我认为),你无法将密码从"get-credential"传递给另一个Powershell cmdlet.

这是我正在使用的代码:

add-pssnapin sqlserverprovidersnapin100
add-pssnapin sqlservercmdletsnapin100

# load assemblies
[Reflection.Assembly]::Load("Microsoft.SqlServer.Smo, `
      Version=9.0.242.0, Culture=neutral, `
      PublicKeyToken=89845dcd8080cc91")
[Reflection.Assembly]::Load("Microsoft.SqlServer.SqlEnum, `
      Version=9.0.242.0, Culture=neutral, `
      PublicKeyToken=89845dcd8080cc91")
[Reflection.Assembly]::Load("Microsoft.SqlServer.SmoEnum, `
      Version=9.0.242.0, Culture=neutral, `
      PublicKeyToken=89845dcd8080cc91")
[Reflection.Assembly]::Load("Microsoft.SqlServer.ConnectionInfo, `
      Version=9.0.242.0, Culture=neutral, `PublicKeyToken=89845dcd8080cc91")

# connect to SQL Server

$serverName = "HLSQLSRV03"
$server = New-Object -typeName Microsoft.SqlServer.Management.Smo.Server -argumentList $serverName

# login using SQL authentication

$server.ConnectionContext.LoginSecure=$false;
$credential = Get-Credential
$userName = $credential.UserName -replace("\\","")
$pass = $credential.Password
$server.ConnectionContext.set_Login($userName)
$server.ConnectionContext.set_SecurePassword($credential.Password)
$DB = "Master"

invoke-sqlcmd -query "select @@Servername" -database $DB -serverinstance $servername -username …
Run Code Online (Sandbox Code Playgroud)

powershell cmdlets sql-server-2008

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