我找到了二叉树和其他类型的树。
我不明白如何为一个通用的树做一个搜索方法。
我想出的东西是这样的
comparable Search(GeneralTreeNode node, comparable key){
if(node != root){
if(root.getChildren().contains(node))
return node.key;
}
else return // I dont know what to do next ???????
}
}
我的类将root作为我的通用树节点,将key作为可比较的对象。
我有树结构。
class Element {
private List<Element> children;
}
Element treeStructure = produceSomeTreeStructure();
//How to get its height and number of elements.
直进解是做两个循环.首先,我可以找到节点数。
(对非二叉树改变此算法),
和第二个循环得到树的高度
再次,将该算法应用于非二叉树.
我的问题是,如何一走了之。保持全局变量的结果对我来说是可以接受的。
我编写了以下代码来逐行打印二叉树。这个想法是使用两个队列,并在它们之间交替。我使用一个$tmp变量来交换这两个队列。我不认为这是有效的,因为我是在复制数组。在php中有没有更好的方法来做到这一点,而不是复制?谢谢。
Btree:
// use 2 queues to get nodes level by level
$currentQueue = array();
$otherQueue = array();
if (!empty($Root)) {
array_push($currentQueue, array($Root->getData(), $Root->get
我刚刚开始学习二叉树。在给定Inorder和Postorder或Inorder和Preorder的情况下,有没有一种算法来找出二叉树结构?我一直在尝试手动操作,但它从来没有出来correct.For例如-这两个是有效的顺序和后序遍历一个给定的树:
顺序:D B F E A G C L J H K后序:D F E B G L J K H C A
显然,A是根元素,因为它是Postorder中的最后一个元素。现在按顺序看,左边的子树变成:{D B F E},右边的子树变成{G C L J H K}。右子树的根将是前序中倒数第二的元素,即C。我现在可以进一步划分右子树(以C为根),给出{G}作为右子
我的老师让我用python实现数组,而不使用任何内置的函数,但是我很困惑,我不知道如何实现?这是完整的问题..。
Write a program in Python to implement the “Array” data structure. Perform operations like add or insert, delete or remove and display. Your program should be able to add/insert at any position in an array or remove/delete any element from an
我需要为我的algorithms II类“创建一个由二叉树(BST)实现的优先级队列”。但是,我不确定您将如何使用二叉树作为优先级队列。有人能澄清一下作业要求我做的是什么吗?
作为参考,下面是PriorityQueue必须实现的方法:
add – adds a new item to the queue
peek – returns the head of the queue
remove – removes the head of the queue and returns it
search – returns the position of an element in the queue
在Haskell中,我可以定义二叉树如下:
data Bint a = Leaf a | Branch a (Bint a) (Bint a)
然后我可以对其进行如下操作:
height (Leaf a) = 1
height (Branch a l r) = 1 + (max (height l) (height r))
count (Leaf a) = 1
count (Branch a l r) = 1 + (count l) + (count r)
我知道Python在Haskell中没有等同于data的内容。如果有,请告诉我。
那么,如何在Python中定义二叉树,以及如何在其
我编写了一个递归函数来查找二叉树的最小值(假设它是无序的)。
代码如下所示。
//assume node values are positive int.
int minValue (Node n) {
if(n == null) return 0;
leftmin = minValue(n.left);
rightmin = minValue(n.right);
return min(n.data, leftmin, rightmin);
}
int min (int a, int b, int c) {
int min = 0;
if(b != 0 && c != 0)
我试图构建一个二叉树形式,一个csv-文件,然后赋予另一个函数这个二叉树,但是Python将它形成为某种对象,我无法用我的知识来处理它。打印的输出是:<class 'csv.DictReader'> <csv.DictReader对象在0x00000172BBB1CCD0>上
def load_cities():
"""
Read CSV-Data from File into a Dictonary.
"""
city_dict = {}
with open(CURRENT