Переделать программу из С++ в C#
Формулировка задачи:
Ребят, помогите переделать код на С#
struct Node { std::vector<Node*> v; int depth; } nodes[256]; /* создается структура с именем Node; это как класс, только у структуры по умолчанию открыты переменные Node - что то типа собственного типа данных, содержашего: 1) вектор v указателей на структуру. как бы указатель - это просто ссылка на место расположения каждой Node в памяти программы. 2) величину каждого из векторов (хотя объект std::vector может возвращать свой размер, эта переменная служит для логической связки с вектором и для убоства обращения с твоим типом данных Node; объявление после закрывающей скобки служит объявлением 256 объектов типа Node */ int N, M; int bfs(Node* start) { int ret = 0; // сумма длинн всех узлов, как я понимаю for(auto& n : nodes) { n.depth = std::numeric_limits<int>::max(); } /* компактная форма цикла for; аналог foreach в других языках. типа для каждого объекта nodes, и даже пофиг на то какой у них индекс, указать максимум величины инт и записать в переменную depth для каждого объекта n. такое объявление auto& n значит что переменная n примет свой тип только во время исполнения, а знак & нужен только для того, чтоб мы могли стать ссылкой на целый массив. */ std::queue<Node*> Q; //объявление очереди start->depth = 0; //
Решение задачи: «Переделать программу из С++ в C#»
textual
Листинг программы
public class Node { public Node() { v = new List<Node>(); } public List<Node> v { get; set; } public int depth { get; set; } } public static Node[] nodes = new Node[256]; public static int N, M; public static int bfs(IList<Node> start) { int ret = 0; foreach (Node n in nodes) { n.depth = int.MaxValue; } var Q = new Queue<Node>(); start[0].depth = 0; // здесь должен быть какой-то код, которого не было в примере return 0; // вместо 0 должно быть что-то другое }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д