Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
6 / 6 / 1
Регистрация: 22.10.2012
Сообщений: 36

DataGridView и поиск в ширину

28.05.2013, 17:24. Показов 1611. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В dataGridView собственно матрица есть матрица смежности ориентированного графа. Если значение клетки не ноль, то есть ребро.
В listBox хочу вывести путь до определнной вершины.
Получается пока весь грид не пройдем,он не выйдет же,да?
Вопросы:что есть подобное питоновскому "in" для списков в шарпе?
Вообще на верном пути я?
написал:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 private void button9_Click(object sender, EventArgs e)
        {
            int start = int.Parse(comboBox3.Items[comboBox3.SelectedIndex].ToString());
            int end = int.Parse(comboBox4.Items[comboBox4.SelectedIndex].ToString());
            List<int> a = new List<int>();
            List<int> use = new List<int>();
            a.Add(start);
            use.Add(start);
            bfs(start, end, a, use);
 
        }
 
        public void bfs(int start, int end, List<int> a, List<int> use)
        {
            int colcount=dataGridView1.Columns.Count;           //кол-во столбцов
            int rcount = dataGridView1.Rows.Count;              //кол-во строк
 
            for (int i=start; i < dataGridView1.Rows.Count; i++)
            {
                for (int j = 0; j < dataGridView1.Columns.Count; j++)
                {
                    if (dataGridView1.Rows[i].Cells[j].Value.ToString() != "0")
                    {
                        colcount = Convert.ToInt32(dataGridView1.Columns[j+1].ToString());    //берем номер столбца
                        if (colcount in use)                //если вершина не в списке посещенных
                        {
                            a.Add(colcount);        //добавляем ее в список(путь)
                            use.Add(colcount);      //добавляем в посещенные
                            listBox2.Items.Add(colcount + "->");
                            bfs(colcount, end, a,use);
                        }
                    }
 
                }
            }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.05.2013, 17:24
Ответы с готовыми решениями:

Составление кубиков, поиск в пространстве состояний, монотонный поиск в ширину [Turbo Prolog]
Помогите решить задачу с кубиками в турбо прологе с несложной визуализацией. Имеется произвольное число кубиков, из которых составлены...

Графы: поиск в ширину, поиск вершины с максимальной степенью
Дан граф. Способ представления и метод обхода равен список смежности;поиск в ширину. Дополнительное задание Найти вершину с...

DataGridView задать ширину столбца
Здравствуйте. Поскажите, как задать для каждого столбца определенную ширину? Private Sub Form1_Load(ByVal sender As System.Object,...

2
38 / 38 / 11
Регистрация: 21.05.2013
Сообщений: 128
28.05.2013, 17:39
...

Добавлено через 8 минут
if (use.Contains(colcount))
1
6 / 6 / 1
Регистрация: 22.10.2012
Сообщений: 36
31.05.2013, 20:27  [ТС]
Чутка переписал/дописал.
Не пойму, почему не работает...
при таблице
0 1 0
0 0 1
0 0 0
не доходит из 1 до 3, до 2 доходит

код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
private void button9_Click(object sender, EventArgs e)
        {
            int start = int.Parse(comboBox4.Items[comboBox4.SelectedIndex].ToString());
            int end = int.Parse(comboBox3.Items[comboBox3.SelectedIndex].ToString());
            List<int> use = new List<int>();
            bfs(start, end, use);
 
        }
 
        public void bfs(int start, int end, List<int> use)
        {
            int colcount=dataGridView1.Columns.Count;           //кол-во столбцов
            int rcount = dataGridView1.Rows.Count;              //кол-во строк
 
            List<int> temp=new List<int>();         //временный список для объединения
            temp.Add(start);                //кладем туда вершину
            var result = use.Concat(temp);          //результат объединения списков
            List<int> path = result.ToList();           //кидаем результат в список( в списке хранится путь)
            temp.Clear();
 
            //if (start == end)
            if(path.Contains(end))
            {
                for (int k = 0; k <= path.Count; k++)
                {
                    listBox2.Items.Add(path[k]+ "->");
                }
            }
 
            for (int i=start; i < dataGridView1.Rows.Count; i++)
            {
                for (int j = 0; j < dataGridView1.Columns.Count; j++)
                {
                    if (dataGridView1.Rows[i].Cells[j].Value.ToString() != "0" && dataGridView1.Rows[i].Cells[j].Value.ToString() != "\n0")
                    {
                        int colcountt = dataGridView1.Columns[j].Index;
                        if (!path.Contains(colcountt))                //если вершина не в списке посещенных
                        {
                            bfs(colcountt, end, path);
                        }
                    }
 
                }
            }
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.05.2013, 20:27
Помогаю со студенческими работами здесь

Программно задать ширину колонок DataGridView
Всем привет! Подскажите как программно задать ширину колонок DataGridView?

Как установить ширину столбцов в DataGridView?
Здравствуйте. DataGridView привязан к форме и его ширина меняется с изменением ширины формы. В DataGridView несколько столбцов....

Установить нужную ширину столбцов в datagridview
Не могу установить нужную мне ширину столбцов в таблице. Не присваиваются значения ширины в колонку№0. Как решить проблему? ...

Задать программно ширину столбцов DataGridView
Загружаю данные в DataGridView из Excel. Первые столбцы 0-2 всегда присутствуют им задаю в программе ширину. В Excel файлах может быть...

Как менять ширину столбцов в datagridview?
Я бы хотел чтобы и ширину столбцов и размеры самого datagridview можно было менять во время выполнения, причем также обычно, как меняют...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru