Презентация, доклад Фундаментальные циклы
Вы можете изучить и скачать доклад-презентацию на
тему Фундаментальные циклы.
Презентация на заданную тему содержит 52 слайдов. Для просмотра воспользуйтесь
проигрывателем,
если материал оказался полезным для Вас - поделитесь им с друзьями с
помощью социальных кнопок и добавьте наш сайт презентаций в закладки!
Презентации»
Математика»
Фундаментальные циклы




























![int main(int argc, char* argv[])
int main(int argc, char* argv[])
{
int main(int argc, char* argv[])
int main(int argc, char* argv[])
{](/documents_3/320acb80275f164d149b39ad2222ef00/img28.jpg)























Слайды и текст этой презентации
Слайд 3


Описание слайда:
Алгоритм обхода в глубину
1) Берем произвольную начальную вершину, и заносим ее в стек;
2) Стек пуст? Если ДА – конец;
3) Берем вершину Z из стека;
4) Если есть вершина Q, связанная с Z и не отмеченная, то возвращаем Z в стек, заносим в стек Q, печатаем ребро (Z,Q);
5) Переходим к п.2
Слайд 23


Описание слайда:
Алгоритм генерации циклов параллельно с поиском в глубину
Добавив в стек очередную вершину Z, нужно пройтись по стеку от вершины к началу, проверяя (по матрице смежности) нет ли в графе ребра (Z,C).
(C – вершина в стеке, расположенная ниже Z.)
Если ребро есть –
печатаем отрезок стека от Z до C.
Слайд 27
![void ChkLoop() // Проверка стека на наличие циклов
void ChkLoop() // Проверка стека на наличие циклов
{
int i,j,C,k;
i=sPtr-1; // i указывает на верхний элемент стека
if (i <= 1) return; // Если в стеке мало вершин - выход
C=sArr[i]; // C – вершина, добавленная последней
for (j=i-2; j >= 0; j--) // Ищем связь с одной из более глубоких
// вершин
if (isBound(C,sArr[j]))
// Нашли – печатаем найденный цикл
{
cout << "Loop: ";
for (k=j; k<=i; k++) cout << sArr[k] << " ";
cout << endl;
}
}](/documents_3/320acb80275f164d149b39ad2222ef00/img26.jpg)
![void ChkLoop() // Проверка стека на наличие циклов
void ChkLoop() // Проверка стека на наличие циклов
{
int i,j,C,k;
i=sPtr-1; // i указывает на верхний элемент стека
if (i <= 1) return; // Если в стеке мало вершин - выход
C=sArr[i]; // C – вершина, добавленная последней
for (j=i-2; j >= 0; j--) // Ищем связь с одной из более глубоких
// вершин
if (isBound(C,sArr[j]))
// Нашли – печатаем найденный цикл
{
cout << "Loop: ";
for (k=j; k<=i; k++) cout << sArr[k] << " ";
cout << endl;
}
}](/documents_3/320acb80275f164d149b39ad2222ef00/img26.jpg)
Описание слайда:
void ChkLoop() // Проверка стека на наличие циклов
void ChkLoop() // Проверка стека на наличие циклов
{
int i,j,C,k;
i=sPtr-1; // i указывает на верхний элемент стека
if (i <= 1) return; // Если в стеке мало вершин - выход
C=sArr[i]; // C – вершина, добавленная последней
for (j=i-2; j >= 0; j--) // Ищем связь с одной из более глубоких
// вершин
if (isBound(C,sArr[j]))
// Нашли – печатаем найденный цикл
{
cout << "Loop: ";
for (k=j; k<=i; k++) cout << sArr[k] << " ";
cout << endl;
}
}
Слайд 29
![int main(int argc, char* argv[])
int main(int argc, char* argv[])
{
int i,j,n;
char fnam[200];
FILE *inp;
if (argc < 2)
{ cout << "Enter file name: "; cin >> fnam; }
else
strcpy(fnam,argv[1]);
if ((inp=fopen(fnam,"r")) == NULL)
{ cout << "Error by open..." << endl;
return 0; }
else
{
fscanf(inp,"%d",&n);
// Ввод размера стека и его создание
cout << "Stack size=" << n << endl;
InitStack(n);](/documents_3/320acb80275f164d149b39ad2222ef00/img28.jpg)
![int main(int argc, char* argv[])
int main(int argc, char* argv[])
{
int i,j,n;
char fnam[200];
FILE *inp;
if (argc < 2)
{ cout << "Enter file name: "; cin >> fnam; }
else
strcpy(fnam,argv[1]);
if ((inp=fopen(fnam,"r")) == NULL)
{ cout << "Error by open..." << endl;
return 0; }
else
{
fscanf(inp,"%d",&n);
// Ввод размера стека и его создание
cout << "Stack size=" << n << endl;
InitStack(n);](/documents_3/320acb80275f164d149b39ad2222ef00/img28.jpg)
Описание слайда:
int main(int argc, char* argv[])
int main(int argc, char* argv[])
{
int i,j,n;
char fnam[200];
FILE *inp;
if (argc < 2)
{ cout << "Enter file name: "; cin >> fnam; }
else
strcpy(fnam,argv[1]);
if ((inp=fopen(fnam,"r")) == NULL)
{ cout << "Error by open..." << endl;
return 0; }
else
{
fscanf(inp,"%d",&n);
// Ввод размера стека и его создание
cout << "Stack size=" << n << endl;
InitStack(n);
Слайд 30


Описание слайда:
// Ввод числа вершин графа
// Ввод числа вершин графа
fscanf(inp,"%d",&n);
cout << "Number of nodes=" << n << endl;
// Создание матрицы смежности
InitGraph(n);
while (1) // Задание ребер графа
{
if (fscanf(inp,"%d %d", &i, &j) == EOF) break;
if ((i <= n) && (j <= n) && (i > 0) && (j > 0))
SetBound(i,j);
else
cout << "Bad node numbers: " << i << " " << j << endl;
}
// Построение стягивающего дерева и генерация циклов
try
{ DFS(); }
catch (char *error_message)
{ cout << error_message << endl; }
Слайд 46


Описание слайда:
Рассмотрим случай, когда блоки B1 и B2 имеют одну общую вершину A.
Рассмотрим случай, когда блоки B1 и B2 имеют одну общую вершину A.
Если эта вершина A не есть точка сочленения исходного графа G, то для двух вершин v1 (из B1) и v2 (из B2) существует путь в G, не проходящий через A.
Добавим к объединению B1 и B2 ребра и вершины этого пути – получим двусвязный граф (включающий B1 и B2).
Значит B1 и B2 – не максимальны.
Слайд 48


Описание слайда:
Теорема
Пусть T есть стягивающее дерево графа G, построенное методом обхода в глубину
и R – корень дерева T.
Вершина V есть точка сочленения графа G в одном из двух случаев:
V=R и R имеет по крайней мере двух сыновей в T.
V <>R и существует сын W вершины V, такой, что ни W ни один из его потомков не связаны ребром с предками V.
Слайд 50


Описание слайда:
Это имеет место потому, что путь между двумя различными сыновьями корня проходит через корень.
Это имеет место потому, что путь между двумя различными сыновьями корня проходит через корень.
Если бы это было не так, то между двумя сыновьями корня существовал бы путь, содержащий хорду (U,S), где ни U не было бы потомком S, ни S не было бы потомком U
Скачать презентацию на тему Фундаментальные циклы можно ниже:
Похожие презентации

Презентация Нумерация многозначны...
1375 просмотров

Презентация Умножение двузначного...
2058 просмотров

Презентация Признаки делимости на...
888 просмотров

Презентация Преобразования фигур....
677 просмотров

Презентация Вписанные углы
855 просмотров

Презентация Весёлая математика 1 ...
1384 просмотра

Презентация Сравнение, сложение и...
1289 просмотров

Презентация Софизмы
1962 просмотра

Презентация Свойства числовых нер...
2124 просмотра

Презентация Прямая. Отрезок. Или ...
876 просмотров

Презентация , = (1 класс)"&g...
874 просмотра

Презентация Векторы в пространств...
825 просмотров

Презентация Решение систем линейн...
1074 просмотра

Презентация ГИА 2013. Модуль АЛГЕ...
1095 просмотров

Презентация Обратная пропорционал...
994 просмотра

Презентация Логарифм числа
1364 просмотра

Презентация Умножение числа на су...
920 просмотров

Презентация Показательные уравнен...
1612 просмотров

Презентация Определение квадратно...
956 просмотров

Презентация Медицина и математика
3133 просмотра

Презентация Евклид
894 просмотра

Презентация Квадратные корни. Ари...
983 просмотра

Презентация Десятичные дроби
1073 просмотра

Презентация Критические точки фун...
909 просмотров

Презентация Сравнение дробей
695 просмотров

Презентация Примеры комбинаторных...
1190 просмотров

Презентация Задачи на взвешивание
1285 просмотров

Презентация Морской пейзаж
1936 просмотров

Презентация Поворот
1179 просмотров

Презентация Трапеция. Площадь тра...
1599 просмотров
993699936699373993519935399368993509934899349993709935799355993729935899362993469935299356993619934499360993639936799364993719935499365993459935999347
Отправить презентацию на почту
0%
Презентация успешно отправлена!
Ошибка! Введите корректный Email!