JavaScript函数打印出一个完整的二叉树
JavaScript function to print out a full binary tree
我试图使一个JavaScript函数,返回一个完整的二进制HTML到一定数量的位。
例如,full_bintree(1)
会给出
的HTML /'
1 0
和full_bintree(2)
将给出
/'
/ '
1 0
/ ' / '
1 01 0
和full_bintree(3)
将给出
/'
/ '
/ '
/ '
/ '
1 0
/ ' / '
/ ' / '
1 0 1 0
/ ' / ' / ' / '
1 0 1 01 0 1 0
等等。
我开始创建一个函数,但它看起来很糟糕,我不断意识到我需要回去修复的问题。
function full_bintree(var b)
{
var retstr = "";
var nr = (2 << b) + (b - 1); // number of rows
for (var i = 0, j = nr - 1, k = 0; i < nr; ++i, --j, k += 2)
{
retstr += "<p>";
// Add leading spaces on line
for (var m = 0; m < j; ++m)
retstr += " ";
// Add backslashes or
// Add middle spaces
for (var m = 0; m < k; ++m)
retstring += " ";
// Add forward slashes
retstr += "</p>";
}
}
函数:
var logtree = function(A){
for(var i = 0; i < A.length; i++)
A[i] = A[i].join("");
A = A.join("'n");
if(typeof $ != "undefined")
$("#a").html(A);
console.log(A);
return A;
},
bintree = function(n, A, offset, lvl){
if(typeof offset == "undefined") offset = 0;
if(typeof lvl == "undefined") lvl = 0;
var width = 3 * Math.pow(2, n) - 1,
height = Math.ceil(width / 2),
mid = Math.floor(width / 2),
half = Math.ceil(height / 2),
nsub = Math.pow(2, lvl),
lim = offset + half - 1,
l = "/",
r = "''";
if(typeof A == "undefined"){
A = [];
for(var i = 0; i < height; i++){
a = [];
for(var j = 0; j < width; j++) a.push(" ");
A[i] = a;
}
}
for(var i = offset, inc = 0; i <= lim; i++){
if(i == lim){
l = 1;
r = 0;
}
var a = 0, j = 0;
for(var j = 0; j < nsub; j++){
A[i][mid - inc + a - 1] = l;
A[i][mid + inc + a + 1] = r;
a += width + 1;
}
inc++;
}
if(n > 1)
bintree(n - 1, A, offset + height / 2, ++lvl);
return A;
};
logtree(bintree(4));
小提琴在这里
相关文章:
- 作为一个二维数组,从ajax接收
- 如何查找值是否存在于二叉树中
- 为什么我应该使用带有碰撞检测的四叉树
- 要插入二叉树的第一个元素,请将其放在左边还是右边
- 将一个二维数组传递给javascript中的函数
- 二叉搜索树“删除”功能的优化
- 二叉搜索树 JavaScript 实现 - 删除函数
- JavaScript数据结构:优先级队列,字典,平衡二叉树
- 将列表显示为二叉树
- 与二维碰撞有关的四叉树
- 解释递归在确定二叉树深度的算法中是如何工作的
- 二叉树中每个节点的坐标
- 二叉树的toString方法
- 不平衡的二叉树不能正常工作.node . js
- 二叉搜索树(Node.js) - SyntaxError: Unexpected Identifier
- 将二叉搜索树转换为双链表的算法
- 在二叉搜索树中找到最近的节点
- 改进计算二叉树中节点值最大和的函数的运行时间
- JavaScript函数打印出一个完整的二叉树
- 二叉树数组
- & lt; li>超文本标记语言