我被要求为以下二叉树实现一个函数:
data BinaryTree a = Nil | BNode a (BinaryTree a) (BinaryTree a)
我需要实现的函数应该生成一个完整的、对称的、无限的、a的二叉树,并且应该有签名:
infTree :: a -> BinaryTree a
我如何实现它呢?
我正在为树数据结构编写一个项目--具体来说,它将提供的主要功能是以不同的方式(在JFrame画布屏幕上的不同布局)显示给定的树。为了简单起见,我假设需要打印的树永远是二叉树。
计算布局的算法需要我对树进行无序/预/后遍历。在我的项目中,我将编写类似以下内容的方法:
class MyBinaryTreePrinterProject{
public void inOrderTraversal(Object root){
// do inorder traversal
}
public void preOrderTraversal(Object root){
// do preo
我想使用C#生成一个二叉树,并在其中插入一个节点。
我尝试了很多方法,但没有生成任何二叉树。我想写一个函数,它将遍历树的根到叶,那么我该如何实现这一点呢?
在下面的代码中,二叉树是我的类。
找到我的以下代码。
int[] values = new int[] { 1, 2, 3, 4, 5 };
BinaryTree tree = new BinaryTree(values);
var node1 = new Node();
var node2 = new Node();
var node3 = new Node
data BTree a = Nil | Node a (BTree a) (BTree a) deriving Show
我学习了两个二进制搜索树。一个是完美的,另一个是完整的。
二叉树是完美二叉树,其中所有内部节点都有两个子节点,并且所有叶子都在同一层上。
一棵二叉树是完全二叉树,如果除了最后一层之外的所有级别都被完全填满,并且最后一层尽可能地保留所有的关键字
检查二叉树是否完美的代码非常简单
isPerfect :: BTree a -> Bool
isPerfect Nil = True
isPerfect (Node x Nil Nil) = True
isPerfect (N
因此,我试图在java中的二叉树(而不是搜索树)中放置一个元素。我到处寻找,我所能看到的就是将它插入到二叉树中的算法(我想要一个简单的二叉树)。给定父节点的值,我需要设置左和右子节点。我的计划如下:
public void addLeft(E elem, E parentVal) {
//Find node with parentVal
//Create node with element elem (call it newNode)
//Set the left child of the node with parentVal as newNode
}
最后两个步骤相当简单,所以我真正的问题