Задачи по программированию

Поиск дубликатов файлов

Задание:

Написать программу, которая осуществляет поиск дубликатов файлов.

На вход подаётся путь, по которому должен осуществляться поиск. На выходе - текстовый файл, в котором будут указаны все дубликаты, по 1 пути на строку.

Будет оценено затраченное время, качество кода, производительность программы, отказоустойчивость.

Идентичность бинарных деревьев

Задача

Дано: два бинарных дерева. Напишите функцию, которая будет проверять равны ли два бинарных дерева.

Два бинарных дерева являются равными тогда и только тогда, когда их структуры и данные идентичны.

Обход бинарного дерева по уровням

Задача:

Дано: бинарное дерево. Вывод: вывести значения узлов в порядке обхода бинарного дерева по уровням.

К примеру, пусть дано следующее бинарное дерево:

    3
   / \
  9  20
    /  \
   15   7

Максимальная глубина бинарного дерева

Задача:

Дано: бинарное дерево. Найти: максимальную глубину, где максимальная глубина бинарного дерева - это количество нод на самом длинном пути от корневой ноды до самой дальней листовой ноды.

Минимальная глубина бинарного дерева

Задача:

Дано: бинарное дерево. Найти: минимальную глубину, где минимальная глубина бинарного дерева - это количество нод на кратчайшем пути от корневой ноды до ближайшей листовой ноды.

Пересечение двух односвязных списков

Задача:

Припустим существует два односвязных списка, которые пересекаются в некоторой точке и стают односвязным списком. Известно начало обох списков, но неизвестна точка пересечения. Также, не известны длины обеих списков и длины обох списков могут быть разными. Первый список может иметь n элементов, перед тем как он достигнет точки пересечения, а второй - m элементов, где m и n могут быть m = n, m < n, m > n. Реализовать алгоритм нахождения точки пересечения.

Судоку

Задача:

Определить является ли заданый судоку правельным. Правела судоку можна посмотреть здесь.

Доска судоку будет не полностью заполнена, где пустые клетки будут позначены как '.'.

Например, на картинке показан частично заполненный судоку, который является правельным:

Треугольник

Задача:

Дан триугольник, нужно найти минимальную сумму пути от верхнего елемента до нижнего. Каждый шаг можна осуществлять только на соседние значения, которые лежат в нижнем ряду триугольника.

Плюс один

Задача:

Дано неотрицательное число представленое как массив цыфер. Добавте до этого числа плюс единицу.

Ограничение:

Цыфры подаются так, что наиболее значимое число стоит у головы массива.

Римские числа в целочисленные

Задача:

Перевести число с римской системы исчесления на целочисленное число.

Ограничение:

Гарантируется, что на вход будут только числа от 1 до 4999.