За въпроси: 02 468 29 53, 02 971 83 90
Учебник
"СТРУКТУРИ ОТ ДАННИ И АЛГОРИТМИ В С#" - част 2.
автори: Иван Иванов, Петър Стойков.
Издателство: Про Лангс
София, 2015
код: 199-134
"В тази книга са разгледани структурите от данни, които предоставят библиотеките на .NET Framework, за прилагане на различни по сложност алгоритми при програмирането със C#.
В първата част на книгата са разгледани колекциите, като структури от данни, показан е подходът за генерично програмиране, създаден е специален клас за анализиране на реалното времетраене за изпълнение на даден алгоритъм. За да се демонстрира как са използвани разгледаните класове, са разработени редица програми, чрез които са визуализирани резултатите от тяхното използване. По-подробно е обърнато внимание на следните класове: Array, ArrayList, Stack, Queue, LinkedList и LinkedListNode. За използването на двоични дървета за търсене са създадени класовете TreeNode и BinarySearchTree, които са включени в една почти изчерпателна програма, демонстрираща повечето от методите за работа с двоичното дърво.
Във втората част на книгата са включени четири глави в които са разгледани следните структури: хеш таблици, речници, множества и графи. В глава 6 е направен общ преглед на хеширането, показани са различни подходи за създаване на хеш функция и са описани подходите за търсене на данни в хеш таблица. Подробно са описани подходите за обработка на колизии. Дадени са примери с използване на класа Hashtable."
В глава 7 е показано използването на речници като структури от данни. Речниците са структури от данни, които съхраняват данните, като двойки ключ – стойност. Демонстрирано е как се създават собствени класове на базата на класа DictionaryBase. Също така са разгледани генеричният клас KeyValuePair и класът SortedLists. Тяхното използване се демонстрира на базата на разработени неголеми приложения.
Глава 8 е посветена на множествата. Направено е въведение в основните понятия за множество, представени са основните операции с множества и основните свойства на множествата. Създадени са програмни реализации на класа множество чрез използване на хеш таблица и чрез използване на класа BitArray.
В глава 9 е представено многообразието от задачи, които се решават с помощта на графи за моделиране на реалния свят. Показани са и са реализирани във вид на програмни приложения следните алгоритми: топологично сортиране, обхождане в дълбочина, обхождане в ширина, минимално свързващо дърво и алгоритъма на Дейкстра за определяне на най-краткия път в граф.
Приведени са много фрагменти от програмен код и цели програми, които непосредствено могат да бъдат използвани в сложни приложения.
Книгата е предназначена за студенти, изучаващи дисциплините „Структури от данни и алгоритми“ и „Структури от данни“ във Факултета „Информационни науки“ – УниБИТ.
Материалът от книгата влиза изцяло в семестриалните изпити на специалностите Информационни технологии, Информационни технологии в съдебната администрация, Информационно брокерство, Информационна сигурност и Компютърни науки на Факултет „Информационни науки“ – УниБИТ.
Може да се използва от докторанти и всички желаещи да се запознаят по-подробно със структурите от данни и създаването на алгоритми с тяхна помощ в средата на C#. За усвояването на материалa са необходими познания по обектно-ориентирано и визуално програмиране със C#.
Предговор
Глава 6. Хеширане и хеш клас
6.1. Общ преглед на хеширането
6.2. Обработване на колизии
6.3. Класът Hashtable
6.4. Речник на компютърните термини
Обобщение
Упражнения
Глава 7. Речници
7.1. Класът DictionaryBase
7.2. Генеричният клас KeyValuePair
7.3. Класът SortedLists
Обобщение
Упражнения
Глава 8. Множества
8.1. Основни определения за множество, операции и свойства
8.2. Реализиране на класа множество чрез хеш таблица
8.3. Реализиране на класа множество чрез BitArray
Обобщение
Упражнения
Глава 9. Графи
9.1. Граф - определение
9.2. Моделиране на реалния свят с помощта на графи
9.3. Създаване на програма за работа с графи
9.4. Топологично сортиране
9.5. Търсене в граф
9.6. Минимално свързващо дърво
9.7. Намиране на най-краткия път
Обобщение
Упражнения
Заключение
Литература