Современные решения

для защиты Windows приложений

и восстановления исходного кода

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)