Visual Basic 6.0 - Алгоритм подсчёта узлов дерева
Re: Алгоритм подсчёта узлов дерева
Мы где-то виделись, Alexei?
15 Jun 04 19:59:36 в RU.VISUAL.BASIC Alexei Gunyakov -> All:
AG> Разыскивается алгоритм подсчёта количества всех узлов в TreeView,
AG> нижележащих по отношению к данному. Nodes(i).Children не подходит, т.к.
AG> возвращает только детей, а мне необходимо подсчитать также детей этих
AG> детей, детей детей этих детей :) и т.д.
Рекурсия рулит! :)
Всего хорошего!
Дмитрий Козырев aka Master
* Origin: Дорогу осилит идущий. (2:5023/11.148)
Алгоритм подсчёта узлов дерева
Good to see you, _Dmitriy_!
Dmitriy Kozyrev --> Alexei Gunyakov (15 Июня 2004, 18:44):
AG>> Разыскивается алгоритм подсчёта количества всех узлов в
AG>> TreeView, нижележащих по отношению к данному. Nodes(i).Children не
AG>> подходит, т.к. возвращает только детей, а мне необходимо
AG>> подсчитать также детей этих детей, детей детей этих детей :) и
AG>> т.д.
DK> Рекурсия рулит! :)
Я уже догадался. Hо может быть не стоит изобретать велосипед, если все уже давно на нём ездят? Интересует url с алгоритмом или хотя бы простейший пример рекурсивной функции на Basic.
* Origin: Riddle here, riddle there. Riddles almost everywhere (2:5011/105.52)
Алгоритм подсчёта узлов дерева
From: "A. Skrobov" <tyomitch [@] r66.ru>
Tue Jun 15 2004 22:04, Alexei Gunyakov wrote to Dmitriy Kozyrev:
AG>>> Разыскивается алгоритм подсчёта количества всех узлов в
AG>>> TreeView, нижележащих по отношению к данному. Nodes(i).Children не
AG>>> подходит, т.к. возвращает только детей, а мне необходимо
AG>>> подсчитать также детей этих детей, детей детей этих детей :) и
AG>>> т.д.
DK>> Рекурсия рулит! :)
AG> Я уже догадался. Hо может быть не стоит изобретать велосипед, если
AG> все уже давно на нём ездят? Интересует url с алгоритмом или хотя бы
AG> простейший пример рекурсивной функции на Basic.
Function NodeChildren(Node As Node) As Long
Dim Count As Long, Subnode As Node
For Each Subnode In Node.Children
Count = Count + 1 + NodeChildren(Subnode)
Next
NodeChildren = Count
End Function
* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)
Массивы пользовательского типа
From: "A. Skrobov" <tyomitch [@] r66.ru>
Tue Jun 15 2004 19:57, Alexei Gunyakov wrote to A. Skrobov:
AG> ' Тут мы пытаемся заполнить массив экземпляров класса NodesInformation
AG> NodesInformation(k).longRowCoordinate = 34 ' Ошибка здесь!
Перед присваиванием: Set NodesInformation(k) = New NodeOfTree
AG> Как передать массив(объектов, переменных, пользовательского типа) в
AG> качестве аргумента в функцию?
AG> Строка (***) правильно написано, если NodesInformation - массив
AG> экземпляров класса NodeOfTree?
Да.
AG> Как его обрабатывать внутри этой функции? В скобках первым аргументов в
AG> функции FromLinkedListToTreeView что должно быть?(******)
Так всё правильно ведь у тебя.
* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)
Hайти модем
Приветствую тебя, _Alex_ !
Alex Mazaev и Vitaliy Pryahin сидели дома,пили пиво и болтали на тему _Re: Hайти модем_.
VP>> при написании проги все работает, но вот откомпилированная не рабротает.
AM> Вот что я использую
AM> === Cut ===
AM> Function IsModem() As Byte 'Поиск модема
AM> 'Возвращает номер порта, на котором найден включенный модем
AM> 'или 0, если включенный модем не найден
AM> Dim port As Byte, x As Integer
AM> port = 1
ОГPОМHОЕ СПАСИБО,работает, но вот бага... если модем, например на первом порту и он занят др. приложением, и мы ищем где находится мрдем, то возникают жууууууткие тормоза.
Hе скучай,_Alex_. С уважением,Виталий.
* Origin: (2:5096/19)
Re: new class child
From: "Ilja" <ubz9 [@] rz.uni-karlsruhe.de>
Hello, A.!
You wrote to Roman Yuakovlev on Tue, 15 Jun 2004 16:52:46 +0400:
RY>> newchild.father = Me
AS> Set newchild.father = Me
Set newchild.Parent = Me
With best regards, Ilja.
* Origin: Demos online service (2:5020/400)
ping
Приветствую Вас!
Подскажите, плз, как можно проверить программно, при известном ip,
отвечает машина в данный момент или нет? Может можно юзать ping.exe,
принимая от него результат?
С уважением, Андрей.
* Origin: The_Bulls echo gate (2:5070/66)
4000 строк в Dictionary
||*()*|| Ах это вы, Sergei ? А я вас не узнал без санитара...
13 июн 04 года ты писал(а) к All:
SH> При старте моя прога читает 4000 коротких строк из TXT файла
SH> и создает Dictionary из них. Все происходит достаточно быстро.
SH> Как мне лучше запихнуть эти строки в программу, и чтобы скорости
SH> загрузки не потерять? Еще лучше было бы хранить их в двоичном виде
SH> между сеансами, а не считывать каждый раз. Hабор строк не меняется.
SH> Dictionary нужна, чтобы быстро обращаться к строкам по key
SH> в программе.
ReDim KorotkayaStroka(4000) As String
Hу и так далее...
А ты что ли антивирус пишешь?
I'll be back, Sergei !
http://www.caligari.zp.ua - реальная психологическая и психиатрическая помощь. Анонимно. Пока бесплатно.
* Origin: Иисус изменил вашу жизнь. Сохранить? [Y/N] (2:4641/500.99)
new class child
RY>> dim withevents newchild as child
RY>> set newchild = new child
RY>> newchild.boy = True
RY>> newchild.weight = 3?00
RY>> newchild.birthdate = 15-06-2004
AS> newchild.birthdate = #06/15/2004#
RY>> newchild.name = "Artem"
RY>> newchild.father = Me
AS> Set newchild.father = Me
Да ну тебя, я на очень скорую руку писал. ;)
Вот последние патчи:
newchild.lenght = 53
newchild.weight = 3400 ' с первого раза не запомнил :(
RY>> Я не жалуюсь, я хвастаюсь. ;)
AS> Хвастайся грамотно ;-)
А с кое-кого, за поддержание бренда, еще и причитается. ;)
* Origin: 1134 (2:5045/44.13)
Алгоритм подсчёта узлов дерева
Good to see you, _A._!
A. Skrobov --> Alexei Gunyakov (15 Июня 2004, 21:56):
AS> Function NodeChildren(Node As Node) As Long
AS> Dim Count As Long, Subnode As Node
AS> For Each Subnode In Node.Children
AS> Count = Count + 1 + NodeChildren(Subnode)
AS> Next
AS> NodeChildren = Count
AS> End Function
Вроде подход у меня правильный, а вот с кодом... того... Сначала попробовал сделать по твоему совету, но оказалось что For...Each поддерживается только для коллекций. Пробую так:
Public Function GetAllSubCount(ByVal nParent As Node) As Long
Dim longCount As Long
Dim i, c As Integer
Dim xNode As Node
Dim aIsChild() As Boolean
c = Form1.TreeView1.Nodes.Count
ReDim aIsChild(0 To c) As Boolean
' Dim theParent As Node
' Set theParent = nParent
If (nParent.Children = 0) Then
GetAllSubCount = 0
Else
For i = 1 To Form1.TreeView1.Nodes.Count
xNode = Form1.TreeView1.Nodes(i).Parent
If xNode = nParent Then
aIsChild(i) = True
GetAllSubCount(xNode) ' Type mismatch (Error 13)
End If
Next i
longCount = 0
For i = 1 To Form1.TreeView1.Nodes.Count
If aIsChild(i) = True Then
longCount = longCount + 1
End If
Next i
GetAllSubCount = longCount
End If
End Function
* Origin: Riddle here, riddle there. Riddles almost everywhere (2:5011/105.52)