我在下面有此Python代码。下面是我尝试将其转换为MATLAB代码的尝试。我是import java.util.Scanner;
import java.util.Queue;
import java.util.LinkedList;
public class BinarySearchTree<T extends java.lang.Comparable<? super T>>
{
private static class BinaryNode<T>
{
private T element; // The data in the node
private BinaryNode<T> left; // Left child
private BinaryNode<T> right; // Right child
// Constructors
BinaryNode( T theElement )
{
this( theElement, null, null );
}
BinaryNode( T theElement, BinaryNode<T> lt, BinaryNode<T> rt )
{
element = theElement;
left = lt;
right = rt;
}
}
private BinaryNode<T> root; //root node of the tree
// Constructor
public BinarySearchTree( )
{
root = null;
}
/***************************************************
* FUNCTION isEmpty: isEmpty *
* checks if the tree is empty *
* INPUT PARAMETERS: none *
* none *
* OUTPUT: boolean *
* true if the tree is empty, false otherwise *
****************************************************/
public boolean isEmpty( )
{
return root == null;
}
private BinaryNode<T> findMin( BinaryNode<T> t )
{
if( t == null )
return null;
else if( t.left == null )
return t;
return findMin( t.left );
}
/***************************************************
* FUNCTION insert: insert *
* inserts an item into the tree *
* INPUT PARAMETERS: x *
* x - the item to be added to the BST *
* OUTPUT: none *
* none *
****************************************************/
public void insert( T x )
{
root = insert( x, root );
}
/***************************************************
* FUNCTION insert: insert helper method *
* inserts an item into the tree *
* INPUT PARAMETERS: x, t *
* x - the item to be added to the BST, subtree to be inserted in *
* OUTPUT: BinaryNode<T> *
* node to be set *
****************************************************/
public BinaryNode<T> insert( T x, BinaryNode<T> t )
{
if( t == null )
return new BinaryNode<T>( x, null, null );
int compareResult = x.compareTo( t.element );
if( compareResult < 0 )
{
t.left = insert( x, t.left );
}
else if( compareResult > 0 )
{
t.right = insert( x, t.right );
}
else
; // Duplicate; do nothing
return t;
}
/***************************************************
* FUNCTION insertList: Option 1 *
* parses a string and insert the values contained in it *
* INPUT PARAMETERS: csv *
* csv - comma seperated list of integers *
* OUTPUT: none *
* none *
****************************************************/
public void insertList(String csv)
{
String[] inputValues = csv.split(",") ; // Numbers are seperated by comma as instructed
for (String x : inputValues)
{
int y = Integer.parseInt(x);
insert(y);
}
}
}
的新手,我正在练习进行转换。 classdef
的问题(想计算我调用构造函数的次数),并且希望得到有关如何纠正转换的反馈。
Python版本:
counter
我尝试进行MATLAB转换:
class Test:
counter = 0
def __init__(self, id):
self.id = id
Test.counter += 1
答案 0 :(得分:0)
我找到了解决方案
classdef Test
properties
id;
end
methods
function self= Test(id)
self.id = id;
end
end
methods (Static)
function c= counter
persistent Count;
if isempty(Count)
Count = 1;
else
Count = Count + 1;
end
c = Count;
end
end
end