Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2020, 17:16   #1
maria484
Новичок
Джуниор
 
Регистрация: 26.12.2020
Сообщений: 1
По умолчанию Порядковая функция на C#

Есть класс, который содержит методы для вычисления и вывода порядковой функции для графа. Люди добрые, объясните пожалуйста глупой студентке, как это все работает и если можно по подробнее. Буду очень благодарна!
Код:
 class HierarchicalLevel
    {
        public List<Level> level;
        public class Level
        {
            public int V;
            public int lvl;
            public List<int> con;

            public Level(int _V, int _lvl = 0)
            {
                V = _V;
                lvl = _lvl;
                con = new List<int>();
            }

            public override string ToString()
            {
                return String.Format("{0} | {1} ", V, lvl);
            }
        }
        public HierarchicalLevel(int V_count)
        {
            level = new List<Level>();
            for (int i = 0; i < V_count; i++)
                level.Add(new Level(i + 1));
        }

        public void AddConnect(List<Edge> lie)
        {
            foreach (var e in lie)
            {
                List<int> used = new List<int>();
                if (e.v1 != e.v2)
                {
                    level[e.v1].con.Add(e.v2);
                    updateLevel(e.v1, used);
                }
            }
        }
        private void updateLevel(int par, List<int> used)
        {
            used.Add(par);
            if (level[par].con.Count > 0)
            {
                foreach (int it in level[par].con)
                {
                    if (used.Contains(it) == false)
                    {
                        if (level[it].lvl <= level[par].lvl)
                        {
                            level[it].lvl = level[par].lvl + 1;
                            updateLevel(it, used);
                        }
                    }
                    else
                    {
                        MessageBox.Show("Данные введены не верно");
                    }
                }
            }
        }
    }

Последний раз редактировалось maria484; 26.12.2020 в 17:22.
maria484 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц