2017-10-17 298 views
-1

PHYTON - 如何在此代碼中創建一個功能來打印每個節點的層次?如何打印二叉樹中每個節點的級別?

referrer=input() 
location=input() 
readFAQ=input() 
pagesVisited=input() 
serviceChosen=input() 


testCase=[referrer, location, readFAQ, pagesVisited, serviceChosen] 

t=buildtree(trainingData) 
printtree(t) 

回答

0

我不知道你在用什麼語言,但這裏是如何在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#,Java的更多的例子時,Visual Basic here