Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебно-практическое пособие ПРОГ.doc
Скачиваний:
38
Добавлен:
20.11.2019
Размер:
5.63 Mб
Скачать

Вопросы для повторения

  1. Понятие абстрактного типа данных.

  2. Понятие O-символики.

  3. АТД список, операторы списка.

  4. Реализация списков посредством массивов.

  5. Реализация списков с помощью указателей.

  6. Реализация списков с помощью курсоров.

  7. АТД стек, операторы стека.

  8. Реализация стеков.

  9. АТД очередь, операторы очереди.

  10. Реализация очередей.

  11. Понятие графа (неориентированного графа).

  12. Понятие вершины графа.

  13. Понятие ребра графа.

  14. Понятие ориентированного графа.

  15. Понятие дуги орграфа.

  16. Понятие смежности.

  17. Понятие концевой вершины.

  18. Понятие инцидентности.

  19. Понятие петли.

  20. Понятие кратных ребер.

  21. Понятие параллельных дуг.

  22. Понятие цепи.

  23. Понятие пути.

  24. Понятие маршрута.

  25. Понятие цикла.

  26. Понятие контура.

  27. Понятие связного графа.

  28. Понятие ациклического графа.

  29. Понятие дерева.

  30. Понятие леса.

  31. Понятие подграфа.

  32. Понятие покрывающего (или остовного) дерева.

  33. Понятие матрицы смежности.

  34. Понятие матрицы инцидентности.

  35. Хранение взвешенных графов с помощью матриц весов.

  36. Упаковка матриц.

  37. Хранение графов с помощью массивов ребер.

  38. Хранение графов с помощью списков смежности.

  39. Хранение графов с помощью списков ребер.

  40. Хранение деревьев.

Резюме по теме

В данной теме рассмотрены различные методы организации данных в памяти ЭВМ.

Тема 7. Некоторые алгоритмы обработки данных

Цели и задачи изучения темы

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

7.1.Алгоритмы поиска

Задача поиска встречается очень часто. В общем случае под задачей поиска понимается задача нахождения среди исходных данных нужных данных, т.е. данных удовлетворяющих условиям поиска. Например, задан список абонентов АТС, необходимо найти номер телефона абонента по его фамилии. Алгоритмы поиска зависят от организации исходных данных.

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

Также в данном разделе рассматривается так называемый фонетический поиск. Задача фонетического поиска - найти нужные данные сопоставленные фамилии человека, если фамилия была воспринята на слух и может содержать ошибки. Подобные методы находят применение в системах, где оператор воспринимает фамилию заказчика на слух и выполняет некоторые действия, например, в системах заказа билетов, бронирования мест в гостиницах, различных справочных системах и т.д.

7.1.1.Поиск элемента в неупорядоченном массиве

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

Один из вариантов реализации процедуры поиска элемента в неупорядоченном массиве был рассмотрен при реализации АТД список на массиве при реализации оператора LOCATE (см. рис. 6.4). Данная реализация алгоритма поиска содержит проверку на окончание массива и проверку на равенство текущего элемента массива с искомым. Обе проверки осуществляется для каждого очередного элемента массива. Поэтому в том случае, когда искомого элемента в массиве нет, будет произведено 2n проверок, где n число элементов массива. Однако число проверок можно уменьшить, если в конец массива включить (n+1)-й элемент, равный искомому. Тогда проверка на окончание массива становится лишней. Остается лишь проверка на совпадение очередного элемента с искомым. Если этот элемент находится внутри массива, то поиск заканчивается удачно и элемент считается найденным. Если же этот элемент оказался (n+1)-ым, то искомого элемента в массиве нет. Подобный прием позволяет упростить условия выхода из цикла и используется в программировании довольно часто. Применив этот прием, получим модифицированный алгоритм оператора LOCATE. Данный алгоритм представлен блок-схемой на рис. 7.1.