小编why*_*heq的帖子

处理AVL树中的重复键

我想avl-tree支持重复键但是复制的默认行为存在问题,binary search tree即旋转可以使具有相同键的节点位于父级的左侧和右侧.

例如,当添加三个节点时,所有带有键A的节点将使树进行旋转,如下所示:

   A
  /  \ 
 A    A
Run Code Online (Sandbox Code Playgroud)

因此,使用该密钥获取所有条目将是一个问题......并且在两个方向上搜索都不是很好.

我想到的解决方案是让每个节点都存储一个重复数组,所以当添加一个已经存在的新项目时,只需要向数组添加一个新项目,删除带有键的项目将删除整个节点,同时查找所有项目使用key将返回该数组.

是否还有其他方法可以处理重复项?

插入项采用一个键和一个值..所以我需要存储值以便通过findAll使用某些键方法返回它们.

avl-tree

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

InitializeComponent()应该在代码顺序中出现在哪里?

如果我创建了一个winForms"myForm",那么会生成以下样板代码:

public partial class myForm: Form
{
    public myForm() 
    {

       //<<position 1

       InitializeComponent();

       //<<position 2

    } 
}
Run Code Online (Sandbox Code Playgroud)

如果我将额外的代码添加到构造函数方法中,如果我将代码放在位置1或2中,它会对应用程序的运行产生任何影响吗?

c# visual-studio-2010 winforms

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

滚动时保持报告标题可见

我经常检查以下选项,希望在RSWeb门户上呈现报告时实现它 - 但它永远不会有效......

在此输入图像描述

报告通常有一些Row Groups- 这是否会对此选项是否有效产生影响?

或者这是一个错误Reporting Services吗?

sql-server sql-server-2008-r2 reporting-services

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

SQL Prime编号功能

如果我有一个数字X并想说IsPrime(X) = true/false使用sql-server最好的方法是什么?

我只是导入一个素数表还是有一个算法对于较小的素数是相当有效的?

注意:我对大于约的数字不感兴趣.千万.

结束使用以下内容:

CREATE FUNCTION [dbo].[isPrime]
(
    @number INT
)
RETURNS VARCHAR(10)

BEGIN


    DECLARE @retVal VARCHAR(10) = 'TRUE';

    DECLARE @x INT = 1;
    DECLARE @y INT = 0;

    WHILE (@x <= @number )
    BEGIN

            IF (( @number % @x) = 0 )
            BEGIN
                SET @y = @y + 1;
            END

            IF (@y > 2 )
            BEGIN
                SET @retVal = 'FALSE'
                BREAK
            END

            SET @x = @x + 1

    END

    RETURN @retVal
END
Run Code Online (Sandbox Code Playgroud)

sql sql-server primes sql-server-2012

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

自托管WebApi可通过LAN访问

Self Host WebApi是一个新手,但我对其易用性和可扩展性印象深刻.至少通过本教程.到目前为止我所做的一切都在我的开发机器上运行,无论我使用的是localhost,127.0.0.1,还是我的LAN Ip(192.168.0.x),但我很困惑为什么我无法从任何其他计算机访问该服务甚至其他计算机在同一个子网中.

简而言之,在运行它的机器上完成教程之后:浏览到

localhost:3636/api/products/ 
Run Code Online (Sandbox Code Playgroud)

导致预期的xml返回.在局域网上的另一台机器浏览到:

192.168.0.x:3636/api/products/ 
Run Code Online (Sandbox Code Playgroud)

导致超时数据指向那些可能知道这一切如何相互作用的人:

1.)我的开发机器(192.168.0.x,服务器,主机,无论你想调用它)都有IIS; 我是如此偏执,这是通过管理GUI停止它的方式

2.)我已使用以下命令行执行保留URL /端口:

    >netsh http add urlacl url=http://+:3636/ user=DOMAIN\USER listen=yes delegate=yes
    >netsh http add urlacl url=http://192.168.0.x:3636/ user=DOMAIN\USER listen=yes delegate=yes
Run Code Online (Sandbox Code Playgroud)

2.b)我已经一起尝试了这两个,并尝试将用户更改为"所有人"无济于事

3.)我试图更改教程中的代码来设置

    config.HostNameComparisonMode = HostNameComparisonMode.Exact //default is Strong Wildcard 
Run Code Online (Sandbox Code Playgroud)

4.)我可以从LAN上的其他计算机成功ping和tracert到192.168.0.x.

5.)一位朋友建议我设置一个TCPListener并确保我可以远程登录以消除防火墙的可能性.如果这个逻辑是合理的,防火墙不是问题

编辑:感谢您的帮助,这是另一个数据点,我相信它确认它不是防火墙问题.我以前在一个相当迟钝(至少是像我这样的非认证人员)瞻博网络防火墙/路由器后面发布了这个连接.我已经在家庭网络上的另一台机器(没有IIS)上重做教程,但仍无法将服务发布到局域网内的其他计算机上.有任何想法吗?

self-hosting asp.net-web-api

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

是评估Main(string [] args)的过度杀伤力

我有以下内容,并想知道初始测试是否过度杀伤:

static void Main(string[] args) {
    if (args.Length == 0 || args == null) {           
        //do X
    }
    else { 
        //do Y 
    }
}
Run Code Online (Sandbox Code Playgroud)

换句话说,我问的是args.Length是零的可能性,还是args为null ....或者只是其中一个条件就足够了?

c# program-entry-point args

8
推荐指数
2
解决办法
1406
查看次数

C#中的变体类型

VBA(我假设VB)有一个Variant类型,我认为它占用了更多的内存,但涵盖了各种数据类型.

c#中有等价物吗?

在Windows窗体中说我有以下内容,我如何修改z的类型以使其运行正常

    private void uxConvertButton_Click(object sender, EventArgs e)
    {
        int x = 10;

        byte j = (byte)x;
        upDateRTB(j);

        long q = (long)x;
        upDateRTB(q);

        string m = x.ToString();
        upDateRTB(m);
    }

    void upDateRTB(long z) {
        MessageBox.Show(this,"amount; "+z);
    }
Run Code Online (Sandbox Code Playgroud)

c# types

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

将不同的时间段分组应用于一组数据

以下是我两年前开始使用的模式,并在我的遗留代码中反复重复.

它使用不同的时间段有效地分组相同的数据.

有没有一种标准的方法我应该接近这个,或者这种长篇大论的方法和我能得到的一样好?

提出这个问题的另一种方法是如何使以下更简洁?
所有4个查询都来自同一个数据源,并且所有4个查询都进入同一个输出表,这4个查询是否可以合并为1个较短的脚本?

DECLARE @myDate DATETIME = CONVERT(DATETIME,CONVERT(VARCHAR(11),GETDATE(),106)); 
DECLARE @myFirstDateLastMth CHAR(8) =CONVERT(CHAR(6),DATEADD(mm,-1,@myDate-1),112) + '01';
DECLARE @myFirstDateCurrentMth CHAR(8) =CONVERT(CHAR(6),DATEADD(mm,0,@myDate-1),112) + '01'; 

DELETE FROM WH.dbo.tb_myTable

--day on day==========
INSERT INTO WH.dbo.tb_myTable
SELECT 
  TimePeriod =
    CASE 
        WHEN x.DateKey = CONVERT(VARCHAR(11),@myDate - 1,112) THEN 'Day'                    
        WHEN x.DateKey = CONVERT(VARCHAR(11),@myDate - 2,112) THEN 'Day-1'  
    END,
  Game              = x.Name,
  Score             = SUM(x.Score),
  Ticks             = SUM(x.Ticks),
  ScorePerTick = SUM(x.Score)/SUM(x.Ticks)
FROM #LimitedBetinfo x
WHEREx.DateKey >= CONVERT(VARCHAR(11),@myDate - 2,112)
GROUP BY
  CASE 
    WHEN x.DateKey = CONVERT(VARCHAR(11),@myDate - …
Run Code Online (Sandbox Code Playgroud)

sql sql-server design-patterns sql-server-2008-r2

8
推荐指数
3
解决办法
635
查看次数

出错时转到0不重置错误捕获

我的印象是On Error GoTo 0重置错误处理.

那么为什么似乎On error resume next没有在以下注册?

Sub GetAction()
Dim WB As Workbook
Set WB = ThisWorkbook

On Error GoTo endbit:
'raise an error
Err.Raise 69
Exit Sub
endbit:
On Error GoTo 0 '<<<reset error handling?

On Error Resume Next
WB.Sheets("x").Columns("D:T").AutoFit
MsgBox "ignored error successfully and resumed next"    

End Sub
Run Code Online (Sandbox Code Playgroud)

error-handling excel vba excel-vba

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

将SQL标准应用于脚本

我有以下脚本,并希望对其进行更改,以使其符合国际标准.我使用SQL-Server,但只要有可能,我想遵循SQL的国际标准.我不相信方括号是标准的 - 我应该用双引号替换它们吗?

如果没有付费获得标准文档的副本,那么互联网上是否有任何资源可以提供按照标准要求格式化和布局的脚本示例?

SELECT 
    a.UserAccountKey,
    SUM(ISNULL(b.[measure Y],0.0)) AS "measure Y",
    SUM(ISNULL(c.[measure Z],0.0)) AS "measure Z"
FROM 
    XXX a
    LEFT OUTER JOIN YYYY b ON
        a.UserAccountKey = b.UserAccountKey
    LEFT OUTER JOIN ZZZZ c ON
        a.UserAccountKey = c.UserAccountKey
GROUP BY
    a.UserAccountKey
Run Code Online (Sandbox Code Playgroud)

编辑

我唯一不喜欢的经典标准是以下几点.这是由AaronBertrand提出的,我同意它更具可读性 - 特别是如果该SELECT条款有20或30个字段:

SELECT 
    a.UserAccountKey,
    "measure Y"             = SUM(ISNULL(b."measure Y",0.0)),
    "measure Z"             = SUM(ISNULL(c."measure Z",0.0)),
    "measure longertitle"   = SUM(ISNULL(c."measure longertitle",0.0)),
    "me short"              = SUM(ISNULL(c."me short",0.0))
FROM 
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-standards

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