ランダムに生成された数値を持つ配列があり、バイナリ検索ツリーアルゴリズムに入力して出力し、視覚的に表現する必要があります。私は、ルートからスティックとノード(左から右)のようなものをシンプルなビジュアル表現を必要とするバイナリサーチツリーアルゴリズムにランダムな値の配列を入力する方法
//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