Нужно ли использовать BST с обоими ключами и значениями? Я могу реализовать BST, который имеет вызовы методов, такие как следующее, в котором он будет делать сравнение в каждом узле, следует ли обход перейти на левый узел или правый узел, основанный на значении V:Нужно ли реализовать BST с ключами и значениями?
public class BST<V>
{
public void Insert(V value)
{
//implementation
}
public V Remove(V value)
{
//implementation
}
//other methods
}
или я могу реализовать BST таким образом, что он имеет метод вызывает как следующий, в котором ключи K являются сравнением определения того, чтобы пройти к левому узлу или правому узел:
public class BST<K key, V value>
{
public void Insert(K key, V value)
{
//implementation
}
//which of the following would then be the appropriate method signature?
public V Remove(K key)
{
//implementation
}
//or?
public V Remove(V Value)
{
//implementation
}
//other methods
}
Учитывая, что вы бы рекомендовали в качестве общего решения BST, которое содержит ключи и значения? –
Определенно, да. Вот как работают классы System.Collection. –
Вы уверены, что не думаете об ароматах IDictionary? Реализации интерфейса ICollection в .NET не обеспечивают прямого доступа для изменения элемента, тогда как IDictionary предоставляют доступ на основе индекса/ключа. ICollection предоставляет только Add и Remove для доступа к элементу. –