タスク8:JavaScriptとツリー(二)
3835 ワード
タスクの説明
タスク7に基づいて、例示的な図を参照して、二叉木をマルチフォークツリーに変更し、各ノードに内容付きのボタンを提供し、表示が遍歴を開始し、クリックすると、現在遍歴されているノードをアニメーション形式で提示して特殊な表示(例えば異なる色)を行い、一定時間(500 ms、1 sなどの時間ごとに)次のノードを遍歴して入力ボックスと「クエリー」ボタンを追加します.ボタンをクリックすると、木の中でノードの内容と入力ボックスの内容が一致するノードをアニメーション形式で検索し始め、見つけたら特殊なスタイルでノードを表示し、見つからないと見つからないヒントを与えます.クエリー・プロシージャの表示プロシージャと遍歴プロシージャは一貫性を保つ
task7
ツリー クエリー
a
b
c
d
e
f
g
k
l
m
n
o
p
q
r
var wrapper=document.getElementById("wrapper");
var arr=[];
function tree(obj,num){
if(num==0){
arr.push(obj);
}
if(obj.children[0]){
tree(obj.children[0],num);
}
if(num==1){arr.push(obj);}
if(obj.children[1]){
tree(obj.children[1],num);
}
if(num==2){arr.push(obj);}
}
var inp=document.getElementById("input");
var sel=document.getElementById("select");
var tex=null;
document.getElementById("button").addEventListener('click',function(){
tex=inp.value;
var val2=sel.value;
tree(wrapper,val2,tex);
var length=arr.length;
var i=0;
var timer=setInterval(function(){
if(i){arr[i-1].style.backgroundColor='';}
arr[i].style.backgroundColor='blue';
var newarr=arr[i].innerText.split('
');
if(newarr[0]==tex){
alert(' ')
clearInterval(timer);
}
i++;
if(i>=length){
clearInterval(timer);
alert(' ')
setTimeout(function(){
arr[i-1].style.backgroundColor='';
},500)
}
},500)
})