#OneYearCodingPlan: месяц 2

В этой статье мы обсудим связанные списки для собеседований по программированию.

Лента новостей:

Понимание узлов в списке, как они связаны друг с другом, а также односвязных, двойных и кольцевых связанных списков - 1 неделя

Выполнение указанного ниже проекта + решение простых вопросов - 1 неделя

Вопросы Easy + Medium - 1 неделя

Сложные вопросы - 1 неделя

Опять же, 1 месяц - это наихудший крайний срок, пропустите первые две недели работы, если вы не любитель, и попробуйте вместо этого завершить эту тему за 2 недели.

Что такое связанные списки:

В некоторых статьях, объясняющих связанные списки, старайтесь не просто просматривать вопросы, а вместо этого кодировать их позже. Сосредоточьтесь на понимании концепций:

Идея небольшого проекта (для любителей):

Чтобы понять и легко использовать связанный список, я бы предложил определить свой собственный класс связанного списка и добавить к нему функции:

Узел - это отдельный элемент в связанном списке, и здесь мы храним int в каждом узле.

  1. Определите класс узла для двусвязного списка (Подсказка: он должен иметь данные Node previous, next и int)
  2. Определите класс связанного списка, который создаст пустой список с нулевым заголовком и хвостом.
  3. Определите метод insert_to_start (int element), insert_to_end (int element).
  4. Определите метод insert_at_position (int p, int element), который будет вставлять элемент в позицию p, и если p больше, чем длина связанного списка, он добавляет элемент в конец.
  5. Определите insert_after_element (int target, int element), который будет искать первый экземпляр цели и добавлять после него элемент. Точно так же определите insert_before_element (int target, int element). Оба выдают ошибку, если элемент не существует.
  6. Определите print_list (), который печатает все элементы, size () возвращает длину списка и reverse (), который меняет текущий список на противоположный.
  7. Определите remove_element (int element), который удаляет первый экземпляр элемента (будьте осторожны, если удаленный элемент находится в позиции головы или хвоста).
  8. Наконец, определите remove_duplicates (), который удалит все повторяющиеся элементы. Например, если ваш список (2- ›3-› 22- ›4-› 2- ›3-› 5), он станет (2- ›3-› 22- ›4-› 5).

Завершив этот проект, вы должны быть достаточно уверены, и я уверяю вас, что вы сможете легко решать вопросы о конкурсе / собеседовании относительно связанных списков.

Вопросы по практике:

  • GeeksForGeek s - Замечательный ресурс с массой проблем, этого может быть достаточно.
  • DZone - Если вы выполнили проект, вы найдете несколько тривиальных вопросов.
  • Leetcode
  • HackerEarth

Когда вы думаете, что готовы, попробуйте эти 5 вопросов на доске. Если вы попросите меня дать один из самых важных приемов взлома кодирования на собеседовании, это будет практика на доске.

Советы по собеседованию:

Вопрос о связном списке на собеседовании задается сравнительно редко (массивы, строки, деревья и графики задаются намного чаще), но понимание их важно, потому что они супер базовые, и они сделают понимание деревьев, графиков или другие конструкции, включающие узловые элементы, соединенные друг с другом сравнительно проще. Многие интервьюеры задают устные вопросы относительно связанных списков чаще, чем кодирования, например, в чем преимущество / недостаток связанных списков по сравнению с массивами, временная сложность вставки и поиска элемента в связанном списке и т. д.

Вот и все! Сообщите мне, если у вас есть какая-либо конструктивная критика в мой адрес и напишите мне в социальных сетях, я всегда с нетерпением жду возможности улучшить свои тексты в соответствии с отзывами!

Спасибо,

Анджали Вирамгама.

Стажер-разработчик программного обеспечения в Facebook

LinkedIn | Instagram

Если вы новичок в моих блогах, это для вас:

Обзорный блог Годового плана - вводный блог

Месяц 1 - массивы и жало.

Формат моих блогов:

  1. Обзор темы и график обучения, которых необходимо придерживаться.
  2. Ресурсы для понимания темы и практических вопросов.
  3. Советы по собеседованию по теме.

Уровень кодирования

Спасибо, что стали частью нашего сообщества! Подпишитесь на наш канал YouTube или присоединитесь к Интервью по программированию Skilled.dev.