remove interface

This commit is contained in:
Pavel 2022-03-06 15:40:23 +03:00
parent e995714826
commit 670053354e
2 changed files with 1 additions and 15 deletions

View file

@ -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`

View file

@ -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
} }