-1
PHYTON-이 코드에서 모든 노드의 레벨을 인쇄하는 함수를 만드는 방법은 무엇입니까?이진 트리에서 모든 노드의 레벨을 인쇄하는 방법은 무엇입니까?
PHYTON-이 코드에서 모든 노드의 레벨을 인쇄하는 함수를 만드는 방법은 무엇입니까?이진 트리에서 모든 노드의 레벨을 인쇄하는 방법은 무엇입니까?
나는 당신이 사용하는 언어가 무엇인지 실마리가 없지만 여기에 JavaScript로 이진 트리를 인쇄하는 방법이 있습니다.
BinaryTree.prototype.preOrderTraversal = function(node){
if(node !== null){
console.log(node.data);
this.preOrderTraversal(node.left);
this.preOrderTraversal(node.right);
}
};
/**
* Post traversal prototype function
* preforms recursive Postorder traversal on the tree
*
* @param start node
*
* @return none
* @throws none
**/
BinaryTree.prototype.postOrderTraversal = function(node){
if(node != null){
this.postOrderTraversal(node.left);
this.postOrderTraversal(node.right);
console.log(node.data);
}
};
/**
* Inorder traversal prototype function
* preforms recursive inorder traversal on the tree
*
* @param start node
*
* @return none
* @throws none
**/
BinaryTree.prototype.inOrderTraversal = function(node){
if(node != null){
this.inOrderTraversal(node.left);
console.log(node.data);
this.inOrderTraversal(node.right);
}
};
/**
* Depth Frist Search prototype function
* preforms Depth First Search on the tree
*
* @param start node
*
* @return none
* @throws none
**/
BinaryTree.prototype.depthFirstSearch = function(node){
if(node == null)
return;
var stack = [];
stack.push(node);
while (stack.length > 0) {
console.log(node = stack.pop());
if(node.right!=null)
stack.push(node.right);
if(node.left!=null)
stack.push(node.left);
}
};
/**
* Breadth First Search prototype function
* preforms Breadth First Search on the tree
*
* @param start node
*
* @return none
* @throws none
**/
BinaryTree.prototype.breadthFirstSearch = function(node){
if(node == null)
return;
var queue = [];
queue.push(node);
while (queue.length > 0) {
console.log((node = queue.shift()));
if(node.left != null)
queue.push(node.left);
if(node.right != null)
queue.push(node.right);
}
};
기본 비주얼 C#, 자바에 더 많은 예제가 있습니다 here