Лучшие 40 вопросов структуры данных и алгоритмы для интервью Java
Coding
Стек:
Вопрос 1: Реализация стека с использованием массива.
Вам нужно реализовать стек с использованием массива. Вам нужно написать методы push и pop для демонстрации поведения стека (Last In First Out).
Решение : Java-программа для реализации стека с использованием массива.
Вопрос 2: Реализация стека с использованием связанного списка:
Вам необходимо реализовать стек с помощью связанного списка. Вам нужно написать методы push и pop для демонстрации поведения стека (Last In First Out).
Решение : Java-программа для реализации стека с использованием Linked List
Вопрос 3: Реализация стека с использованием двух очередей.
Вам нужно использовать две очереди для реализации поведения стека. Вам нужно написать методы push и pop для демонстрации поведения стека (Last In First Out).
Решение : Java-программа для реализации стека с использованием двух очередей
Вопрос 4: Сортировка стека, используя другой стек
Вам нужно отсортировать стек, используя другой стек. Вы можете использовать для этого стек и операции выталкивания.
Решение : Сортируйте стек, используя другой стек.
Связанный список:
Вопрос 5: Реализация односвязного списка в Java.
Вы должны реализовать односвязные структуры данных списка. Вам нужно написать простую программу для демонстрации операций вставки, удаления. Решение : Java-программа для реализации односвязного списка в Java.

Вопрос 6: Как перевернуть связанный список в Java.
Вам нужно написать итеративное и рекурсивное решение для обратного связанного списка.
Решение : Java-программа для обратного связанного списка в Java.
Вопрос 7: Как найти средний элемент связанного списка.
Вам нужно написать Java-программу, чтобы найти средний элемент связанного списка наиболее оптимизированным способом. Решение : Java-программа для поиска среднего элемента связанного списка .

Вопрос 8: Как найти n-й элемент в конце связанного списка.
Вам нужно написать программу Java, чтобы найти n-й элемент связанного списка наиболее оптимальным способом.
В вопросе 6 Узел 7 является третьим из последнего связанного списка.
Решение : Как найти n-й элемент в конце связанного списка.
Вопрос 9: Как обнаружить петлю в связанном списке. Если в связанном списке есть цикл, найдите начальный узел для цикла.
Вам нужно написать Java-программу, чтобы определить, существует ли какой-либо цикл в связанном списке, и если цикл существует, вам нужно найти начальный узел для связанного списка.
Решение : Как обнаружить петлю в связанном списке .
Как найти начальный узел цикла в связанном списке.
Вопрос 10: Как проверить, является ли связанный список палиндромом или нет?
Палиндром - это слово, фраза, число или другая последовательность символов или элементов, которая читает то же самое вперед или назад. Например: 12121 - палиндром, так как он читает то же самое вперед или назад. мадам тоже палиндром. Поэтому нам нужно написать Java-программы, чтобы проверить, является ли связанный список палиндромом или нет.
Решение : Java-программа для проверки, является ли связанный список палиндромом.
Вопрос 11: Как перевернуть связанный список попарно?
Вам нужно написать Java-программу для обратного связывания списка в парах. Решение: Java-программа для обратного связывания списка в паре.

Двоичное дерево:
Вопрос 12: Как вы можете пройти через двоичное дерево?
Есть три способа прохождения бинарного дерева.
Вопрос 13: Напишите алгоритм для выполнения обхода порядка двоичного дерева?
Вам нужно написать Java-программу, чтобы выполнить обход уровня бинарного дерева. Вы можете использовать структуру данных очереди для прохождения порядка уровней.

Решение : Уровень порядка обхода бинарного дерева.
Вопрос 14: Написать алгоритм для выполнения спирального обхода порядка двоичного дерева?
Вам нужно написать Java-программу для обхода спирального уровня в двоичном дереве

Решение : Sprial порядок или зигзагообразный обход бинарного дерева.
Вопрос 15: Как вы можете распечатать листовые узлы двоичного дерева?
Вам нужно написать Java-программу для печати всех конечных узлов двоичного дерева.

Конечные узлы для вышеупомянутого двоичного дерева будут 5, 30, 55, 70
Решение : Выведите конечные узлы двоичного дерева.
Вопрос 16: Как подсчитать листовые узлы бинарного дерева.
Вам нужно написать Java-программу для подсчета конечных узлов двоичного дерева.
Число узлов листа для двоичного дерева, используемого в вопросе 15, равно 5 .
Решение : Подсчитайте листовые узлы двоичного дерева.
Вопрос 17. Как напечатать все пути от корня до листа в двоичном дереве.
Вам нужно написать программу для печати всех путей от корня до листа.

Решение : Выведите все пути от корня до листа в двоичном дереве.
Вопрос 18: Как найти уровень узла в двоичном дереве
Для данного узла вам нужно найти уровень узла. Например: Уровень узла будет 3 для узла 70, используемого в Вопросе 14.
Решение : Найти уровень узла в двоичном дереве.
Вопрос 19: Как найти максимальный элемент в двоичном дереве.
Вам нужно написать Java-программу, чтобы найти максимальный элемент в двоичном дереве.
Решение : Найти максимальный элемент в двоичном дереве.
Вопрос 20: Как найти наименьшего общего предка (LCA) в бинарном дереве.
Вам нужно написать программу для поиска LCA в двоичном дереве.

Решение : Программа для поиска LCA в двоичном дереве.
Вопрос 21: Как сделать обход границы бинарного дерева.
Напишите Java-программу для обхода границ двоичного дерева, как показано на рисунке ниже.

Решение: обход границы бинарного дерева.
Вопрос 22: Как вывести вертикальную сумму двоичного дерева?
Вам нужно найти сумму узлов, которая лежит в одном столбце.

Решение: Как вывести вертикальную сумму двоичного дерева .
Дерево бинарного поиска:
Вопрос 23: Что такое дерево двоичного поиска?
Двоичное дерево поиска - это особый тип двоичного дерева, которое имеет следующие свойства.
- Узлы, которые меньше, чем root, будут в левом поддереве.
- Узлы, которые больше, чем root, будут правильным поддеревом.
- Не должно иметь дублирующих узлов
- И левое, и правое поддерево также должно быть бинарным деревом поиска.
Вопрос 24: Можете ли вы написать алгоритм для вставки узла в бинарное дерево поиска.
Решение : Вставить узел в бинарное дерево поиска
Вопрос 25: Можете ли вы написать алгоритм удаления узла в бинарном дереве поиска.
Решение : Удалить узел в бинарном дереве поиска
Вопрос 26: Как вы можете найти минимальные и максимальные элементы в бинарном дереве поиска?
Решение : крайний левый и правый узлы бинарного дерева поиска являются минимальным и максимальным узлами соответственно
Минимальные и максимальные элементы в бинарном дереве поиска .
Вопрос 27: Как найти наименьшего общего предка (LCA) в бинарном дереве поиска.
Вам нужно написать программу для поиска LCA в бинарном дереве поиска.

Решение : Программа для поиска LCA в бинарном дереве поиска.
Сортировка:
Вопрос 28: Можете ли вы написать алгоритм сортировки слиянием, а также знаете ли вы сложность сортировки слиянием?
Решение : внедрить сортировку Merge в Java
Вопрос 29: что такое бинарный поиск? Можете ли вы написать алгоритм для поиска элемента в отсортированном массиве с помощью бинарного поиска?
Решение : алгоритм двоичного поиска в Java
Массив:
Вопрос 30: Найти пропущенное число в массиве.
Вам дан целочисленный массив, содержащий от 1 до n, но одно из чисел от 1 до n в массиве отсутствует. Вам необходимо предоставить оптимальное решение, чтобы найти пропущенный номер. Число не может быть повторено в Arry.
Например:
int [] arr1 = {7,5,6,1,4,2};
Отсутствующий номер: 3
int [] arr2 = {5,3,1,2};
Недостающее число: 4
Решение : Найти недостающее число в массиве.
Вопрос 31: Поиск элемента в повернутом и отсортированном массиве.
Вам дан отсортированный и повернутый массив, как показано ниже:
int arr [] = {16,19,21,25,3,5,8,10};
Если вы заметили, что массив отсортирован и повернут. Вам нужно искать элемент в указанном массиве в o (log n) сложности времени.
Решение : поиск элемента в повернутом и отсортированном массиве
Вопрос 32: Найти второе по величине число в массиве
Учитывая несортированный массив, вам нужно найти второй по величине элемент в массиве за o (n) временной сложности.
Например:
int [] arr1 = {7,5,6,1,4,2};
Второй по величине элемент в массиве: 6
Решение: Java-программа для поиска второго по величине числа в массиве .
Вопрос 33: Найти число, встречающееся нечетное количество раз в массиве
Вам дан массив целых чисел. Все числа встречаются четное количество раз, кроме одного. Вам нужно найти число, которое встречается нечетное количество раз. Вы должны решить это с o (n) сложностью времени и o (1) сложностью пространства.
Например:
int array [] = new int [] {20, 40, 50, 40, 50, 20, 30, 30, 50, 20, 40, 40, 20};
Число, которое встречается нечетное количество раз: 50
Решение: Java-программа для поиска числа, встречающегося нечетным числом раз в массиве .
Вопрос 34: Найдите минимальное количество платформ, необходимых для железнодорожной станции
Вам дается время прибытия и отправления поездов, идущих до определенной станции. Вам необходимо найти минимальное количество платформ, необходимых для размещения поездов в любой момент времени.
Например:
прибытие [] = {1:00, 1:40, 1:50, 2:00, 2:15, 4:00}
отправление [] = {1:10, 3:00, 2:20, 2:30, 3:15, 6:00}
Количество платформ, необходимых в приведенном выше сценарии = 4
Пожалуйста, обратите внимание, что время прибытия в хронологическом порядке.
Решение: Найти минимальное количество платформ, необходимых для железнодорожной станции .
Вопрос 35: Найдите пару, чья сумма ближе всего к нулю в массиве
Учитывая массив целых + ve и -ve, нам нужно найти пару, сумма которой близка к нулю в массиве.
Например:
массив [] = {1,3, -5,7,8,20, -40,6};
Пара, сумма которой ближе всего к нулю: -5 и 6
Решение: Найдите пару, чья сумма ближе всего к нулю в массиве в Java .
Вопрос 36: Учитывая отсортированный массив и число x, найдите в массиве пару, сумма которой ближе всего к x
Для данного отсортированного массива нам нужно найти пару, сумма которой близка к числу X в массиве.
Например:
массив [] = {- 40, -5,1,3,6,7,8,20};
Пара, чья сумма ближе всего к 5: 1 и 3
Решение: Найдите пару, чья сумма ближе всего к X в массиве в Java .
Вопрос 37: Найти все пары элементов из массива, сумма которого равна заданному числу
Для данного массива нам нужно найти все пары, сумма которых равна числу X.
Например:
массив [] = {-40, -5, 1, 3, 6, 7, 8, 20};
Пара элементов, сумма которых равна 15: 7, 8 и -5, 20
Решение: Найти все пары элементов из массива, сумма которого равна заданному числу .
График:
Вопрос 38: Напишите алгоритм для поиска в глубине в графе.
Решение : поиск в глубине в java
Вопрос 39: Напишите алгоритм для поиска в ширину по графику.
Решение: поиск в ширину в java
Разнообразный
Вопрос 40: Что такое алгоритм и как рассчитать сложность алгоритмов.
Решение: Как рассчитать сложность алгоритма.

Заметили ошибку или есть вопросы?Рассказывай нам о них,связаться с нами ты сможешь с помощью нашего чата или же с помощью бота обратной связь
Не забывайте ставить 👍 если вам понравилась и подписаться на канал,а так же посетить наш чат.