LINUX.ORG.RU

История изменений

Исправление korvin_, (текущая версия) :

Что тут пишутт вообще, я не понимаю, что вы несете?

Еще раз, два итератора, которые делаются хранением стейта BFS вне функции. Каждый по очереди дергаешь и сравниваешь.

Именно это и написали.

chan1 := WalkTree(tree1)
chan2 := WalkTree(tree2)

 — два итератора.

for {
	node1 := <-chan1
	node2 := <-chan2
	if node1 == nil && node2 == nil {
		return true
	}
	if node1 == nil || node2 == nil {
		return false
	}
	if !comparator(node1, node2) {
		return false
	}
}

 — дергаются и сравниваются. Что тебе не понятно?

Исходная версия korvin_, :

Что тут пишутт вообще, я не понимаю, что вы несете?

Еще раз, два итератора, которые делаются хранением стейта BFS вне функции. Каждый по очереди дергаешь и сравниваешь.

Именно это и написали.

chan1 := WalkTree(tree1)
chan2 := WalkTree(tree2)

-- два итератора.

for {
	node1 := <-chan1
	node2 := <-chan2
	if node1 == nil && node2 == nil {
		return true
	}
	if node1 == nil || node2 == nil {
		return false
	}
	if !comparator(node1, node2) {
		return false
	}
}

-- дергаются и сравниваются. Что тебе не понятно?