Автор работы: Пользователь скрыл имя, 23 Апреля 2015 в 02:53, контрольная работа
Множество — это структурированный тип данных, представляющий собой набор взаимосвязанных по какому-либо признаку или группе признаков объектов, которые можно рассматривать как единое целое. Каждый объект в множестве называется элементом множества.
1 Множества. Множества в Pascal …………..…………………………………………….…… 2
2.Граф.Машинное представление графов……………..……………………………………….5
Матрица смежности. Нахождение кратчайшего пути в графе……………………………..6
3. Практическая часть ………………………………………………...………..……………….5
4.Список используемой литературы…...………………………………………………...…..…7
Код программы
#include <iostream>
using namespace std;
const int N = 4; // Число элементов для перестановки
void print_array(int N, int* array)
{
// Вывод массива на экран
for (int i = 0; i < N; ++i)
cout << array[i] << " ";
cout << endl;
}
void swap(int* array, int i, int j)
{
// Перестановка двух элементов
int t = array[i];
array[i] = array[j];
array[j] = t;
}
void print_permutations(int N, int* array)
{
int* c = new int[N];
bool* pr = new bool[N];
for (int i = 0; i < N; ++i)
{
c[i] = 1;
pr[i] = true;
}
c[N - 1] = 0;
print_array(N, array);
int i = 0;
while (i < N-1)
{
i = 0;
int x = 0;
while (c[i] == N - i)
{
pr[i] = !pr[i];
c[i] = 1;
if (pr[i])
++x;
++i;
}
if (i < N - 1)
{
int k = pr[i] ? c[i] + x : N - i - c[i] + x;
swap(array, k - 1, k);
print_array(N, array);
c[i] ++;
}
}
delete[] c;
delete[] pr;
}
int main()
{
int* array = new int[N];
for (int i = 0; i < N; ++i)
array[i] = i + 1; // 1..N
cout << "Transpozicii dly elementov.." << N << ":" << endl;
print_permutations(N, array);
system("pause");
return 0;
}
Результат работы: (Рис. 7)
Рис. 7
Список использованной литературы