임의로 생성 된 숫자가있는 배열이 있으며이를 이진 검색 트리 알고리즘에 입력 한 다음이를 출력하고 시각적으로 표현해야합니다. 내가 루트에서 막대기와 노드 (좌우) 같은 것을 단순한 시각적 표현이 필요이진 탐색 트리 algirithm에 임의의 값의 배열을 입력하는 방법
//buttons and input
range:<input type="text" id="input1">
lenght:<input type="text" id="input2">
<input type="submit" value="Submit" onclick="javascript:myJsFunction()">
<script>
//random number generator
function myJsFunction(){
var x=document.getElementById('input1').value;
var n=document.getElementById('input2').value;
var data=[];
for (var i = 0; i < n ; i++){
data[i]=Math.floor(Math.random()*x);
}
}
//binary search tree algorithm
class Node {
constructor(data, left = null, right = null) {
this.data = data;
this.left = left;
this.right = right;
}
}
class BinaryTree {
constructor() {
this.root = null;
}
add(data) {
const node = this.root;
if (node === null) {
this.root = new Node(data);
return;
} else {
const searchTree = function(node) {
if (data < node.data) {
if (node.left === null) {
node.left = new Node(data);
return;
} else if (node.left !== null) {
return searchTree(node.left);
}
} else if (data > node.data) {
if (node.right === null) {
node.right = new Node(data);
return;
} else if (node.right !== null) {
return searchTree(node.right);
}
} else {
return null;
}
};
return searchTree(node);
}
}
}
</script>
: 다음은 코드입니다. 배열에 이진 트리 또는 적절한 시각화 그래서 아무것도 도움이 필요할 것이라고 아무것도 찾을 수 없습니다.
들여 쓰기를 수정하십시오. 그게 읽기 쉽습니다! 그리고 귀하의 질문에 우리에게 감사 할 필요가 없습니다. –
어, 여기 코드가 너무 많을 것 같은데. 생성자에서, 필요한 것은'(데이터)'이고, 다음은'this.data = data; 그리고 그 아래'this.children = [];'이라고 생각합니다. 아이들의 개념이 당신의 나무에서 사라진 것 같습니다. 난 당신이 아이를 저장하기위한 빈 배열을 초기화하고 내가이 주석에 당신을 보여준 것처럼 아이 속성을 할당해야한다고 생각합니다. – Daniel