Страница: 1 |
Салют! Есть некий класс: Public Value As Long Public Left As clsNode Public Right As clsNode Так вот. Рекурсивная процедура по добавлению элемента почему-то не работает: Sub BuildTree(ByRef top As clsNode, ItemData) If top Is Nothing Then Set top = New clsNode ' конкретно вот эта строка не работает! top.Value = ItemData Else If ItemData > top.Value Then BuildTree top.Right, ItemData Else BuildTree top.Left, ItemData End If End If End Sub А процедура Sub printTree(top As clsNode) If Not (top Is Nothing) Then printTree top.Left Me.txtSorted.Text = Me.txtSorted.Text & Trim(Str(top.Value)) & " " printTree top.Right End If End Sub работает замечательно. В чем собака порылась?
А класс точно называн clsNode? А вообще какую ошибку выводит ? Я, видимо, не совсем точно описал проблему. Никакой ошибки нет. Просто новые элементы не добавляются. Происходит следующее: внутри процедуры объект top создается и изменяется, но эти изменения не отражаются на том объекте, ссылку на который я передаю процедуре. Пока вышел из положения написав цикл, но это некрасиво и неизящно и вместо 5 строк кода получилось 20. Страница: 1 |
Вопрос: деревья
Добавлено: 10.03.04 09:11
Автор вопроса: superjarilo | ICQ: 174331844
Ответы
Всего ответов: 2
Номер ответа: 1
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #1
Добавлено: 10.03.04 11:05
Номер ответа: 2
Автор ответа:
superjarilo
ICQ: 174331844
Вопросов: 7
Ответов: 5
Профиль | | #2
Добавлено: 11.03.04 08:46