Итак, я студент в области компьютерных наук и примерно через неделю... Я вернусь на курс Data Structures, используя С++ для применения теории. Да, я сказал "заново". Я прошел курс прошлой осенью, и я чувствую, что мне больше нужно учиться. Будучи студентом, я чувствую, что я ДОЛЖЕН знать основы, потому что будет намного легче понять новые концепции в будущих классах, уже зная основные понятия... не имея необходимости переучиваться каждый раз.
В первый раз, у меня не было опыта работы на С++, и курс ожидал, что мы будем кодировать к концу первой недели. Я изо всех сил пытался выполнить несколько первых заданий программирования (MPs). Излишне говорить, что я привык к этому и мало беспокоился о синтаксисе оставшейся части семестра. Но тогда возникли сложные структуры данных, и теория (Big O) стала сложной частью.
В целом это был отличный опыт, но я чувствую, что моя проблема в том, что у меня не сложились хорошие привычки в учебе. Я сделал депутатов и явился на лекцию, но, похоже, мое сердце не было со мной. Я хочу изменить это во второй раз, потому что, оглядываясь на класс, я хорошо провел время, и мне понравился материал. Но я обнаружил, что слишком много времени размышлял над созданием структуры данных, когда мне нужно было потратить время на размышления о том, как эффективно использовать структуру данных.
Теория обучения сложна (в основном потому, что это не так интересно), так как я должен применять себя, чтобы действительно понять класс, охваченный Структурой данных? Я всегда был визуальным учеником, интерактивным учеником... Я не хочу тратить время, просто занимаясь своими депутатами. Скорее, я хочу проводить свое время таким образом, чтобы я действительно изучал/понимал концепции, а затем прямо применял знания.
Я ищу любые предложения... возможно, советы по привычкам в учебе, которые работали для вас в прошлом, изучая такие понятия... или предложения о хороших методах заметок... все, что вы хотели бы share:)... и самое главное, как подготовиться до начала семестра.
Пожалуйста, не стесняйтесь предоставлять обратную связь, даже если был выбран ответ. Я ищу ваши советы... вот почему я отправил:) Спасибо!
ПРИМЕЧАНИЕ. Структуры данных и темы, рассмотренные в курсе: списки, стеки, очереди, деревья (разные типы), таблицы хэша, графики, методы поиска/сортировки/обхода.
UPDATE. Здесь приведен список ссылок и ссылок, составленных из ответов.
- Алгоритмы в С++ Роберта Седжуика
- Введение в алгоритмы Cormen
- NIST словарь алгоритмов и структур данных
- Алгоритмы сортировки
- Обходы деревьев
- Обход графика
- http://www.codeproject.com/KB/cpp/linked_list.aspx
- http://www.codeproject.com/KB/architecture/treedata_class.aspx
ОБНОВЛЕНИЕ 2. Здесь приведен список других источников, которые я нашел: