What is the method of creating n-ary tree with layer depth first and breadth first?
This article introduces the relevant knowledge of "what is the method of creating n-tree with layer depth first and breadth priority". In the operation of actual cases, many people will encounter such a dilemma, so let the editor lead you to learn how to deal with these situations. I hope you can read it carefully and be able to achieve something!
one
Function makeTree (layer) {
Const root = {}
MakeNode (root, layer)
Return root
}
Function makeNode (node, layer, keys = ['left',' right']) {
If (!-- layer) {
Keys.forEach ((key) = > {
Node [key] = null
})
Return
}
Keys.forEach ((key) = > {
Node [key] = {}
});
Keys.forEach ((key) = > {
MakeNode (node [key], layer)
});
}
two
Function makeTree (layer, keys = ['left',' right']) {
If (! layer) {
Return null
}
Layer--
Const node = {}
Keys.forEach ((key) = > {
Node [key] = makeTree (layer)
});
Return node
}
three
Function makeBinaryTree (layer = 4) {
Function Node (opts) {
Return opts
}
Const root = {value: 0, layer: 0}
Let queue = [root]
Let current
While (current = queue.shift ()) {
If (current.layer = = layer) {
Return root
}
Current.left = new Node ({value: 0, layer: current.layer + 1})
Current.right = new Node ({value: 1, layer: current.layer + 1})
Queue.push (current.left)
Queue.push (current.right)
}
}
This is the end of the content of "what is the method of layer depth first and breadth first to create n-tree". Thank you for your reading. If you want to know more about the industry, you can follow the website, the editor will output more high-quality practical articles for you!