Проверьте, подключен ли узел (не) напрямую к определенному узлу.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Проверьте, подключен ли узел (не) напрямую к определенному узлу.

Сообщение Anonymous »

Я хотел бы иметь возможность проверять, подключен ли конкретный узел к корневому узлу прямо или косвенно. Код ниже работает в некоторой степени, но довольно часто не может найти корень (когда это очевидно).

РЕДАКТИРОВАТЬ: Использование корня слова в этом посте. не относится к какому-либо зарезервированному термину и представляет собой всего лишь спонтанное имя логической переменной, которая помечает узел как «специальный».

Пока:

Код: Выделить всё

//The node
public class Node
{
public Node[] connectedNodes;
public bool rootNode;
}

//The function
public static bool HasRootNode(Node fromNode)
{
List Processed = new List();
Stack WorkStack = new Stack(FromNode.connectedNodes);

Processed.Add(fromNode);

while (WorkStack.Count != 0)
{
Node workItem = WorkStack.Pop();

foreach (Node cNode in workItem.connectedNodes)
{
if (Processed.Contains(cNode))
continue;

if (cNode.rootNode)
return true; // Found..

WorkStack.Push(cNode); // Queue all of the connectedNodes for this node
Processed.Add(cNode); // This node has been processed..
}
}

return false; // Not found..
}
Будем благодарны за любую помощь!

Подробнее здесь: https://stackoverflow.com/questions/526 ... cific-node
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»