http://meixx.go1.icpcn.com/mycode/xxtree/XXTree.js//按照tf函数的遍历条件,遍历以node为根的树结构,对所有满足条件函数cf的节点,进行af操作
XXTree.prototype.traverseTree = function(node,tf,cf,af){
var nodeStack = [];
var rootNode = node;
var idx = 0;
for(;;){
if(node){
if(tf(node)){
if(cf(node)) af(node);
nodeStack.push({index:idx,nodeRef:node});
idx = 0;
node = node.childNodes[idx];
}else{
if(cf(node)) af(node);
if(node == rootNode) break;
node = node.pNode.childNodes[++idx];
}
}else{
node = nodeStack.pop();
if(nodeStack.length == 0) break;
idx = node.index + 1;
node = node.nodeRef.pNode.childNodes[idx];
}
}
}
XXTree.prototype.traverseTree = function(node,tf,cf,af){
var nodeStack = [];
var rootNode = node;
var idx = 0;
for(;;){
if(node){
if(tf(node)){
if(cf(node)) af(node);
nodeStack.push({index:idx,nodeRef:node});
idx = 0;
node = node.childNodes[idx];
}else{
if(cf(node)) af(node);
if(node == rootNode) break;
node = node.pNode.childNodes[++idx];
}
}else{
node = nodeStack.pop();
if(nodeStack.length == 0) break;
idx = node.index + 1;
node = node.nodeRef.pNode.childNodes[idx];
}
}
}
解决方案 »
- js循环调用的优化
- 求点击小图切换大图JS
- 怎么在function中进行布局 高手指点 紧急!!!!
- 求script debugger免费下载
- 求助:一个javascript解密函数,谢谢
- select中,如何 option 和条数定义它的高度,条数过多也不会有上下拉滚动条?
- 如何用正则验证DDMMYYYY格式的时间。在线等待
- 高分求助在线等:用window.showModalDialog()函数打开一个窗口,当执行完后,要刷新父窗口该怎么执行啊?
- 这个是什么意思? !function(){}() ,这是什么? 前面的叹号
- 求助 关于字符串
- 这种表格怎么对齐阿,小弟就剩这点分了,全给了
- 求(带可选项、带图片的无限级树结构的实现)
终于写完自己的了,还是学艺不精,多谢指教!