jS生成二叉樹,二叉樹的遍歷,查詢以及插入

2021-09-06 14:28:41 字數 1121 閱讀 2744

js遞迴,二叉樹的操作

//遞迴演算法n次冪

function foo(n) else

} nodes = ,,,

,,,,

]}

]}//遞迴樹形節點

function output(node) );

}}//output(nodes);

//二叉樹

var tree = ,

right:

},right: , right:

}}//二叉樹遍歷(遞迴演算法,容易導致執行棧溢位)

function printtree(tree)

if (tree.right)

}//printtree(tree);

//二叉樹的查詢

var count = 0;

function findintree(tree, v) else if (v < tree.value && tree.left) else if(v==tree.value)else

}//findintree(tree,70);

//二叉樹的插入

function inserttree(tree, v) else ;

}} else if (v < tree.value) else ;

} } else

}//inserttree(tree,505);

//二叉樹的生成(以乙個陣列中的任意元素為樹的根節點)

var data = [12, 23, 45, 123, 5, 89, 42, 32, 69, 11, 87, 25];

//生成乙個隨機的索引

var rindex = math.floor(math.random() * data.length);

//隨機獲取data中的乙個元素作為二叉樹的根元素

var prodtree = ;

//使用根元素和陣列為引數 建立索引

function createtree(node, data) );

}createtree(prodtree,data);

//遍歷生成的二叉樹每個節點的值

printtree(prodtree);

構建二叉樹 遍歷二叉樹

陣列法構建二叉樹 public class main public static void main string args 用陣列的方式構建二叉樹 public static void createbintree 把linkedlist集合轉成二叉樹的形式 for int j 0 j 最後乙個父節...

二叉樹 二叉樹的查詢

三種查詢方式 前序查詢 中序查詢 後序查詢。前序查詢 比較當前節點,如果是,返回查詢結果。如果不是就向左遞迴查詢,如果左邊沒有就向右邊遞迴查詢。設定no 5,針對該題,前序遍歷共4次。中序遍歷 先向左遞迴查詢,如果左子樹沒有,再比較當前節點,如果仍然不是則向右遍歷查詢。後序遍歷 先向左遞迴查詢,如果...

排序二叉樹or搜尋二叉樹or查詢二叉樹

排序二叉樹,搜尋二叉樹,查詢二叉樹都是乙個意思,只是叫法不同而已。下面的文章中我們統稱為排序二叉樹。本文主要是針對高中資訊學,因此其中不涉及到指標,所有需要用指標的地方都直接使用陣列進行模擬。排序二叉樹定義 1 若左子樹不空,則左子樹上所有結點的值均小於或等於它的根結點的值 2 若右子樹不空,則右子...