我试图解决一个面试问题,但为此我必须逐级旅行二叉树.我设计的BinaryNode具有以下变量
private object data;
private BinaryNode left;
private BinaryNode right;
Run Code Online (Sandbox Code Playgroud)
有人可以帮我在BinarySearchTree类中编写BreadthFirstSearch方法吗?
更新:感谢大家的投入.所以这是面试问题."给定一个二叉搜索树,设计一个算法,创建每个深度的所有节点的链表(即,如果你有一个深度为D的树,你将有D个链表)".
这是我的方法,让我知道你的专家评论.
public List<LinkedList<BNode>> FindLevelLinkList(BNode root)
{
Queue<BNode> q = new Queue<BNode>();
// List of all nodes starting from root.
List<BNode> list = new List<BNode>();
q.Enqueue(root);
while (q.Count > 0)
{
BNode current = q.Dequeue();
if (current == null)
continue;
q.Enqueue(current.Left);
q.Enqueue(current.Right);
list.Add(current);
}
// Add tree nodes of same depth into individual LinkedList. Then add all LinkedList into a List
LinkedList<BNode> LL = new LinkedList<BNode>();
List<LinkedList<BNode>> result = …Run Code Online (Sandbox Code Playgroud) 我有一些数据存储在表中,如下所示:
id parent_id name
1 0 Entry 1
2 0 Entry 2
3 0 Entry 3
4 1 Child of entry 1
Run Code Online (Sandbox Code Playgroud)
我想把它变成一个嵌套数组,如下所示:
array(
array(
'id' => 1,
'parent_id' => 0,
'name' => 'Entry 1',
'children' => array(...)
),
...
);
Run Code Online (Sandbox Code Playgroud)
理想情况下,它需要支持无限量的嵌套(有孩子的孩子).我的表是否设置为支持这个,如果是这样,我将如何使用表中的数据生成这种数组?如果没有,我应该如何设置我的桌子?
我正在尝试使用Xcode进行分布式构建,但是从构建服务器构建时我看到了这个错误(Build Sever是主机,dev机器是客户端).
当我尝试以另一种方式执行此操作时,我能够分发构建(我的Dev机器作为主机,Build Sever作为客户端)
有什么想法吗?
[14:44:47]: Step 2/3 (6m:10s)
[14:44:57]: [Step 2/3] distcc[95606] (dcc_parse_multiplier) ERROR: bad multiplier "/0,lzo,cpp" in host specification
[14:44:57]: [Step 2/3] distcc[95606] (dcc_show_hosts) CRITICAL! Failed to get host list
[14:44:57]: [Step 2/3] /usr/bin/pump: error: pump mode requested, but distcc hosts list does not contain any hosts with ',cpp' option
Run Code Online (Sandbox Code Playgroud) 我试图从struts动作传递colModel和列.就像问题 jqGrid和动态列绑定一样
我不确定我错过了什么.请帮忙.花了不少时间试图把它弄好.
JSP:
<script type="text/javascript">
$(document).ready(function(){
$.ajax(
{
type: "POST",
url: "interFinalTbaAction.action",
data: "",
dataType: "json",
success: function(result){
colD = result.couponStripList;
colN = result.columnNames;
colM = result.colModelList;
jQuery("#dataGrid").jqGrid({
jsonReader : {
repeatitems: false,
root:"rootVar",
cell: "",
id: "0"
},
url: 'SomeUrl/Getdata',
datatype: 'jsonstring',
mtype: 'POST',
datastr : colD,
colNames:colN,
colModel :colM,
loadComplete: function(data){alert('loaded');},
loadError: function(xhr,status,error){
alert('error');
}
})
},
error: function(x, e){
alert(x.readyState + " "+ x.status +" "+ e.msg);
}
});
});
</script>
<h2>Inter Final Prices</h2>
<table id="dataGrid"> …Run Code Online (Sandbox Code Playgroud) 我正在尝试将MySQL Connector/C++添加到我的visual Studio 2010项目中.
我按照步骤(这里,mysql文档)将它添加到Visual Studio(我还在"附加包含目录"中添加了Boost).
它要求一个"sqlstring.h"文件(一个版本如何错过一个文件?!),所以我从源文件(mysql源档案)获得它.
然后,它要求libmyql.lib,我有MySQL Server 5.5\lib的lib目录.
而现在,我正在犯这个错误:
错误127错误LNK1120:31未解析的外部C:\ Users\Haks\Documents\Visual Studio 2010\Projects\ProductManager\Debug\ProductManager.exe ProductManager
错误60错误LNK2001:未解析的外部符号
"__declspec(dllimport) bool __cdecl std::operator<<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (__imp_??$?MDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z)C:\ Users\Haks\Documents\Visual Studio 2010\Projects\ProductManager\ProductManager\mysqlcppconn-static.lib(mysql_ps_resultset.obj)ProductManager
所以,也许是因为我得到了MySQL Connector/C++ 1.1的二进制版本,也许它与VS 2010不兼容......
但我找不到编译源文件的好方法,而且我从不使用Boost或CMake,而且似乎需要它.
我没有找到任何关于我的问题的提法,所以如果有人得到回应或者有好的方式,那对我和我想的很多人来说都会非常有用.
谢谢
我正在创建一个ajax实用程序,用于连接我的服务器方法.我想从jQuery.ajax()调用返回的对象中利用jQuery 1.5+延迟方法.情况如下.
serverside方法始终返回JSON对象:
{ success: true|false, data: ... }
客户端实用程序启动这样的ajax调用
var jqxhr = $.ajax({ ... });
问题领域:
jqxhr.success(function(data, textStatus, xhr) {
if(!data || !data.success) {
???? // abort processing, trigger error
}
});
return jqxhr; // return to caller so he can attach his own handlers
Run Code Online (Sandbox Code Playgroud)所以问题是如何取消所有调用者的调用附加成功回调触发他的错误处理程序在提到的地方?????
文档说延迟函数调用列表是FIFO,所以我的成功处理程序绝对是第一个.
我知道Android能够创建一个用于更新共享首选项的Activity,但有没有办法在警告对话框中显示"Activity",以便首选项可以显示为"弹出窗口",而不是切换到自己的活动?
我希望这是有道理的....
我有一个旧数据库,其中一个表包含许多列,其中一个列名为oper,其类型为varchar,此表中有180,000多行,此列的值可以是以下值之一:
first
second
third
fourth
fifth
Run Code Online (Sandbox Code Playgroud)
现在我更新了我的表并使数据类型为int.所以,如果我想插入旧数据我不能因为类型之间的不同(int - string).
我需要一些方法来循环抛出表行并检查oper的值
如果old值等于"first",则复制该行并首先更改为1并将此行放入新表中
如果旧值等于"秒",则复制该行并首先更改为2并将此行放入新表中
等等 .....
有什么方法可以做到吗?
出于性能原因,我正在考虑将静态.JS文件移动到CDN(如Amazon S3).由于我的PHP文件和mySQL数据库仍保留在我的主要托管域中,如果它们现在是跨域的,那么管理我的JS AJAX请求的最佳方法是什么?
目前它们在我的.JS文件中看起来像这样(带有相对路径):
$.ajax({
type: "POST",
url: "/myNearbyPhpFile.php",
data: {data:someData},
success: function($r){}
});
Run Code Online (Sandbox Code Playgroud) 我正在编写一个应用程序,它将从Web服务中读取XML(可能是通过kSOAP2).我对SAX解析非常满意,因为我已经完成了XML解析iPhone应用程序.
不幸的是,webservice还没有公开,所以对于初始测试我有一些包含我需要解析的XML的文件.在这个早期的开发阶段,我只需要从文件中读取XML并将其传递给XML解析器
Xml.parse(this.testXML, root.getContentHandler());
Run Code Online (Sandbox Code Playgroud)
如何将文件/资源中的XML读入字符串以传递给此方法.我想破解并测试解析器,但这个简单的步骤阻碍了我.
谢谢