remove interface
This commit is contained in:
parent
e995714826
commit
670053354e
2 changed files with 1 additions and 15 deletions
|
@ -1,16 +1,9 @@
|
||||||
# treeiter
|
# treeiter
|
||||||
|
|
||||||
В этой задаче нужно написать итератор по бинарному дереву.
|
В этой задаче нужно написать итератор по бинарному дереву.
|
||||||
Это дерево удовлетворяет следующему интерфейсу и само является типом `T` в нем:
|
|
||||||
|
|
||||||
```go
|
|
||||||
type Node[T any] interface {
|
|
||||||
Left() *T
|
|
||||||
Right() *T
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Итератор должен принимать на вход дерево и
|
Итератор должен принимать на вход дерево и
|
||||||
функцию с одним аргументом типа дерева, не возвращающую ничего.
|
функцию с одним аргументом типа дерева, не возвращающую ничего.
|
||||||
|
Сигнатуру необходимо придумать самостоятельно так, чтобы прошли тесты.
|
||||||
|
|
||||||
Пример использования итератора можно посмотреть в `treeiter_example_test.go`
|
Пример использования итератора можно посмотреть в `treeiter_example_test.go`
|
||||||
|
|
|
@ -6,18 +6,11 @@ import (
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Node[T any] interface {
|
|
||||||
Left() *T
|
|
||||||
Right() *T
|
|
||||||
}
|
|
||||||
|
|
||||||
type ValuesNode[T any] struct {
|
type ValuesNode[T any] struct {
|
||||||
value T
|
value T
|
||||||
left, right *ValuesNode[T]
|
left, right *ValuesNode[T]
|
||||||
}
|
}
|
||||||
|
|
||||||
var _ Node[ValuesNode[any]] = (*ValuesNode[any])(nil)
|
|
||||||
|
|
||||||
func (t ValuesNode[T]) Left() *ValuesNode[T] {
|
func (t ValuesNode[T]) Left() *ValuesNode[T] {
|
||||||
return t.left
|
return t.left
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue