Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: деревья Добавлено: 10.03.04 09:11  

Автор вопроса:  superjarilo | ICQ: 174331844 

Салют!

Есть некий класс:

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

работает замечательно.

В чем собака порылась?

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #1
Добавлено: 10.03.04 11:05

А класс точно называн clsNode?

А вообще какую ошибку выводит ?

Ответить

Номер ответа: 2
Автор ответа:
 superjarilo



ICQ: 174331844 

Вопросов: 7
Ответов: 5
 Профиль | | #2 Добавлено: 11.03.04 08:46

Я, видимо, не совсем точно описал проблему.

Никакой ошибки нет. Просто новые элементы не добавляются.

Происходит следующее: внутри процедуры объект top создается и изменяется, но эти изменения не отражаются на том объекте, ссылку на который я передаю процедуре.

Пока вышел из положения написав цикл, но это некрасиво и неизящно и вместо 5 строк кода получилось 20.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам