小编Chr*_*gis的帖子

迭代还是递归来实现二叉搜索树?

我现在正在学习数据结构和算法。

我的讲义有一个使用递归方法实现的二叉搜索树的实现。这是一种优雅的方式,但我的问题是在现实生活中的代码中,我是否应该递归地实现二叉搜索树,如果树的高度/深度数很大,它是否会生成大量调用堆栈。

我知道递归是理解许多数据结构概念的关键概念,但是您会选择在现实生活中使用递归吗?

iteration recursion binary-tree

4
推荐指数
1
解决办法
3067
查看次数

字典<TKey,TValue>会使用TKey.Equals和TKey.GetHashCode吗?

我已经实现了如下字典:

Dictionary<ErrorHashKey, ErrorRow> dictionary;
Run Code Online (Sandbox Code Playgroud)

我已经定义Equals()GetHashCode()ErrorHashKey课堂上.我目前正在为该项目编写一些文档,并从IEqualityComparer接口文档中获取:

Dictionary需要一个相等的实现来确定键是否相等.您可以使用接受comparer参数的构造函数指定IEqualityComparer泛型接口的实现.如果未指定实现,则使用默认的通用相等比较器EqualityComparer.Default.如果类型TKey实现System.IEquatable泛型接口,则默认的相等比较器使用该实现.

我没有做任何文件指定的事情(或者至少我不认为我是).我没有在构造函数参数中传递比较器,也没有创建EqualityComparer.Default比较器.

是否System.IEquatable<T> generic interface在每个类中自动实现了?我应该定义一个实现IEqualityComparer<T>吗?

c#

4
推荐指数
1
解决办法
350
查看次数

阅读大会

我有以下两行汇编:

add    0x0(%rbp,%rbx,4),%eax
cmp    %eax,0x4(%rbp,%rbx,4)
Run Code Online (Sandbox Code Playgroud)

我只是想确保我正确地阅读它们.第一行是添加东西和eax的内容然后存储在eax中正确吗?第二行是比较值?

assembly

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

从XML文件java程序中删除节点

当我尝试从java程序中删除XML节点中的节点时,它给了我一个奇怪的问题.它正在删除备用节点.我必须在插入新节点之前删除现有节点.我的xml文件是:

<?xml version="1.0" encoding="windows-1252" ?>
<chart>
<categories>
 <category label="3 seconds"/>
 <category label="6 seconds"/>
 <category label="9 seconds"/>
 <category label="12 seconds"/>
</categories>

</chart>
Run Code Online (Sandbox Code Playgroud)

我的java程序是:

      DocumentBuilderFactory  docFactory  = DocumentBuilderFactory.newInstance();
      DocumentBuilder docBuilder = docFactory.newDocumentBuilder();

      Document doc = docBuilder.parse(filePath);


      Node categories = doc.getElementsByTagName("categories").item(0);

      NodeList categorieslist = categories.getChildNodes();

      // if exists delete old data the insert new data.


      for (int c = 0; c < categorieslist.getLength(); c++) {

        Node node = categorieslist.item(c);
        categories.removeChild(node);
      }
    for(int i=1;i<20;i++){

    Element category = doc.createElement("category");
    category.setAttribute("label",3*i+" seconds");
    categories.appendChild(category);
  }
Run Code Online (Sandbox Code Playgroud)

此代码正在删除我不知道原因的替代节点.生成的XML显示如下:

<categories> …
Run Code Online (Sandbox Code Playgroud)

java xml

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

覆盖虚函数返回类型不同且不协变

我已将我的应用程序从32位移植到64位平台,并遇到了各种构建问题.我解决了几乎所有事情,但我遇到了一个我无法弄清楚的错误.

任何人都可以建议解决这个错误?

"错误61错误C2555:'CICEVisionDlg :: DoModal':覆盖虚函数返回类型不同并且与'CDialog :: DoModal'不一致

DoModal覆盖代码:

int CICEVisionDlg::DoModal() 
{ 
  int nRet; 
  m_bPopup = TRUE; 
  CEXTDLLState EXTDLLState(m_hResDllModule); 
  nRet = CDialog::DoModal(); 
  m_bPopup = FALSE; 
  return nRet; 
}
Run Code Online (Sandbox Code Playgroud)

c++ 64-bit mfc build-error windows-7

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

了解浮点精度

是这样的情况:

  1. 可表示的浮点值在零附近的实数行中最密集?
  2. 当数字线偏离零时,可表示的浮点值会变稀疏(指数?)?
  3. 如果以上两个都是真的,那是否意味着距离零更远的精度更低

总体问题:精确度在某种程度上是指或可以依赖于您可以表示的数字密度(准确)吗?

c++ floating-point floating-point-precision

3
推荐指数
2
解决办法
1268
查看次数

无法将QQuickText分配给QString

我试图在qml-javascript中动态创建对象.创建对象的函数是:

function createSpriteObjects(xPos,yPos,cnt,imgsrc,jsonObject) {
    var title;
    title = jsonObject.matches[cnt].recipeName;
    var component = Qt.createComponent("FlickItem.qml");
    component.createObject(wall.contentItem, {"color":"white", "x":xPos,"y":yPos,"src":imgsrc,"opacity":1,"title":title});
}
Run Code Online (Sandbox Code Playgroud)

接收文件(FlickItem.qml)具有属性字符串标题,稍后将其分配给Text项的文本字段:

import QtQuick 2.0

Rectangle {
id: name
opacity: 0
property string title: ""
width:100
height:100
color:"white"

property string src: ""

Image {
   id:recipeimages
   source: src
   width:240
   height:160
}
Text {
   id: title
   anchors.bottom: recipeimages.bottom
   anchors.horizontalCenter: recipeimages.horizontalCenter
   anchors.bottomMargin: 5
   color: "white"
   font.pixelSize: 24
   text:title
}
Run Code Online (Sandbox Code Playgroud)

返回以下错误:

无法将QQuickText分配给QString

有什么方法吗?

javascript qstring qml

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

更新语句中 SQL 中的动态列名

DECLARE @sql NVARCHAR(max)
DECLARE @ParmDefinition NVARCHAR(500)
SET @sql = 'UPDATE [Table1] SET [Table1].[@columnName] = TEST';
SET @ParmDefinition = N'@columnName NVARCHAR(50)';
EXEC sp_executesql @sql, @ParmDefinition, @columnName = N'MyColumn';
Run Code Online (Sandbox Code Playgroud)

当我运行上述查询时,我得到Invalid column name '@columnName'.. 显然,在运行查询时不会替换列名。

实际上,我的@sql 变量要大得多,而且我有很多要更新的列,因此我想避免SET SQL =对列名的所有枚举进行操作。

我想声明一次 sql 字符串,并使用不同的值调用查询。例如:

EXEC sp_executesql @sql, @ParmDefinition, @columnName = N'MyColumn';
EXEC sp_executesql @sql, @ParmDefinition, @columnName = N'AnotherColumn';
EXEC sp_executesql @sql, @ParmDefinition, @columnName = N'YetAnotherColumn';
-- And so on
Run Code Online (Sandbox Code Playgroud)

这样的事情可能吗?

sql-server sp-executesql

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

从BigDecimal []添加值

我正在努力寻找一种方法来添加BigDecimal []的值,这是从mysql的表中的复选框形式获得的.

这是我到目前为止的代码,但是我找不到从这些值中获得一个数字的方法:

String select[] = request.getParameterValues("id"); 
if (select != null && select.length != 0)
{
    for (int i = 0; i < select.length; i++) 
    {
        BigDecimal total[] = new BigDecimal [select.length];
        BigDecimal sum = new BigDecimal("0.00");
        sum = sum.add(new BigDecimal [total.length]);

        out.println(sum);
    }
}
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感谢请.

java bigdecimal

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

MySQL WHERE子句中的聚合?

我有以下数据库架构:

Customer(ssn, name, gender, city)
Vehicle(vin, make, model, year)
BuyVehicle(bvssn, bvvin, price, year)
Run Code Online (Sandbox Code Playgroud)

哪里BuyVehicle.bvvin是一个外键Vehicle.vinBuyVehicle.bvssn是从一个外键Customer.ssn。我正在尝试选择以高于特定车辆平均价格的价格购买车辆的人的姓名。

到目前为止,我已经确定了如何计算车辆的平均值:

SELECT AVG(price) as avg_price, v.maker, v.model, v.year FROM BuyVehicle bv, Vehicle v, Customer c WHERE v.vin = bv.BVVIN AND c.ssn = bv.bvssn GROUP BY maker, model, year;
Run Code Online (Sandbox Code Playgroud)

我试图price > avg_priceWHERE子句中输入条件:

SELECT AVG(price) as avg_price, v.maker, v.model, v.year FROM BuyVehicle bv, Vehicle v, Customer c WHERE v.vin = bv.BVVIN AND c.ssn = bv.bvssn AND …
Run Code Online (Sandbox Code Playgroud)

mysql

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