{
SubInt t1,t2;
list *next;
};
4. Укрупненный алгоритм решения задачи
1. Укрупненный алгоритм решения задачи построения остовного дерева с минимальным весом
![]() |
2. Укрупненный алгоритм решения подзадачи создания списка вершин
![]() |
3. Укрупненный алгоритм решения подзадачи удаления заданного элемента из списка
![]() |
4. Укрупненный алгоритм решения подзадачи ввода данных
![]() |
5. Укрупненный алгоритм решения подзадачи добавления элемента в дерево двоичного поиска
![]() |
6. Укрупненный алгоритм решения подзадачи создания списка
![]() |
7. Укрупненный алгоритм решения подзадачи добавления ребра в список, который содержит остовное дерево с минимальным весом
![]() |
8. Укрупненный алгоритм решения подзадачи вывода остовного дерева с минимальным весом
![]() |
9. Алгоритмрешения подзадачи
5. Структура программы
Главный модуль:
- Назначение: Определение входных и выходных данных задачи, ввод входных данных, последовательный просмотр домов (столбов) и поиск остовного дерева с минимальным весом, вывод результата.
- Прототип функции: void main ()
Модуль А:
- Назначение: Ввод электрической сети.
- Прототип функции: void Postr ()
Модуль B:
- Назначение: Создание списка.
- Прототипфункции: void Init_spisok(L **l)
- Параметры: l – (входной и выходной пераметр) голова списка, который хранит остовное дерево с минимальным весом.
Модуль C:
- Назначение: Построение остовного дерева с минимальным весом.
- Прототипфункции: void Reshenie(list **p)
- Параметры: p - (входной и выходной пераметр) голова списка, который хранит остовное дерево с минимальным весом.
Модуль D:
- Назначение: Вывод остовного дерева с минимальным весом.
- Прототип функции: void out(L*p)
- Параметры: p – (входной параметр) голова списка, который хранит остовное дерево с минимальным весом.
МодульE:
- Назначение: Добавление элемента в дерево двоичного поиска.
- Прототипфункции: void Search (int A, int B, int C, Ref *p)
- Параметры: A – (входной параметр) дом.
B – (входной параметр) дом.
С – (входной параметр) цена кабеля между домом А и домом В.
p – (входной и выходной параметр) корень дерева двоичного поиска.
Модуль F:
- Назначение: Создание списка домов.
- Прототипфункции: void Postroenie (svqz *UkStr)
- Параметры: UkStr – (входной и выходной параметр) голова списка, который содержит дома.
Модуль G:
- Назначение: Нахождение заданного дома.
- Прототипфункции: void Poisk (svqz st, SubInt MENT, svqz *Res)
- Параметры: st – (входной параметр) голова списка, который содержит дома.
MENT – (входной параметр) заданный дом.
Res – (выходной параметр) элемент списка, который хранит в себе заданный дом.
Модуль H:
- Назначение: Удаление заданного элемента из списка.
- Прототип функции: void Udalenie (svqz *zv, svqz UkStr)
- Параметры: zv – (входной и выходной параметр) заданный элемент.
UkStr – (входной параметр) глава списка, который содержит дома.
Модуль K:
- Назначение: Добавление кабеля в список, который содержит остовное дерево с минимальным весом.
- Прототипфункции: void insert(L **l,SubInt t1,SubInt t2)
- Параметры: l – (входной и выходной параметр) голова списка, который содержит остовное дерево с минимальным весом.
t1 – (входной параметр) дом.
t2 – (входной параметр) дом.
6. Текст программы на языке Си
#include <conio.h>
#include <stdio.h>
#define TRUE 1
#define FALSE 0
typedef struct list L;
typedef unsigned int SubInt;
typedef struct Uzel *Ref;
Ref Root;
typedef struct list
{
SubInt t1,t2;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.