справочная служба
- может быть как тупо привязанный к системе текстовый файлик
- может быть как справочник:
- возникает проблема формулировки запроса (придется добавить Поиск и оглавление)
- многоуровневая помощь (формулировка/параметры/описание/ахреннноподробаняхарактеристика)
- должна быть возможность просто перенести инфу из справочника в рабочий файл
- пробема наращиваемости справочника (надо ли делать, если да то как, и ее проблемы)
хелп мапла как образце для подражания:
представление- начальный раздел справки
контекстный хелп
запуск обучающей системы
что нового
правила использования HELPа
вывод указателя терминов
предметный поиск по абзацу
история
запись данных в базу данных
включение выключение всплывающих подсказок
регистрация
информация о мапле
Для примера возьмем дек(все оценки чисто субъективные, вы можете не согласится со мной)
Для массива надо запоминать первую голову и последнею, это довольно таки трудно
Не ограниченность | Прямой доступ к элементу | Настройка длинны под потребности задачи | Сложность работы | Скорость работы | Количество памяти при одинаковой длине | Сколько памяти используется зря | Полная оценка | ||
Массив | |||||||||
список | |||||||||
Список массивов | |||||||||
Массив списков | |||||||||
Фиктивный элемент с двух сторон в списке | |||||||||
циклический список | |||||||||
циклический список с фикт элем | |||||||||
Двусвязный список | |||||||||
Двусвязный с фикт элем список | |||||||||
Двусвязный циклический с фикт элем список |
Стек-массив, список, масив списков, список массивов, список с фикт элем, циклический список, циклический список с фикт элем, двусвязный список, двусвязный с фикт элем, двусвязный циклический, двусвязный циклический с фикс элем.
Очередь-массив, список, масив списков, список массивов, список с фикт элем(1 фикт элем или 2), циклический список, циклический список с фикт элем, двусвязный список, двусвязный с фикт элем(1 фикт элем или 2), двусвязный циклический, двусвязный циклический с фикс элем
Строки- массив, список, масив списков, список массивов, список с фикт элем(1 фикт элем или 2 в фиктивном элементе можно например хранить количество используемых элементов, так же и в массиве), циклический список, циклический список с фикт элем, двусвязный список, двусвязный с фикт элем(1 фикт элем или 2), двусвязный циклический, двусвязный циклический с фикс элем
множества-массив,массив с хеш функцией, список, масив(также можно использовать хешь функции) списков, список массивов, список с фикт элем(1 фикт элем или 2), циклический список, циклический список с фикт элем, двусвязный список, двусвязный с фикт элем(1 фикт элем или 2), двусвязный циклический, двусвязный циклический с фикс элем, в некоторых случаях можно еще наверно рассказать (написать) про кеширование.
Регулярные деревья – массив (для бинарного, например, потомки будут с индексами 2i+1 и 2i+2),массив массивов, списками, массивы списков, список списков, список массивов, фиктивные элементы подобавлять(и в массив тоже), можно сделать двусвязные списки.
Не регулярные деревья- массив масивов, список списков, список массивов, массив списков, (добавлять фикт элементы, циклические списки и двусвязные списки)
Произвольные графы – (двумерный масив – вершины, двумерный массив – ребра), (список – вершины, список ребра), (добавляйте фиктивные элементы, зацикливайте, двусвязность)
Разреженые структуры данных – двумерный массив(для матрицы), список, список массивов, массив списков, массив с хешированием, опять фиктивные элементы и тд и тп
Разреженный массив, или разреженная матрица (sparse array), — это массив, в котором не все элементы используются, имеются в наличии или нужны в данный момент. Разреженные массивы полезны в тех случаях, когда выполняются два условия: размер массива, который требуется приложению, достаточно большой (возможно, превышает объем доступной памяти), и когда не все элементы массива используются. Таким образом, разреженный массив — это, как правило, большой, но редко заполненный массив. Как будет показано далее, есть несколько способов реализации разреженных массивов.
разреженный список
Целый список — линейный список, элементы которого принадлежат множеству натуральных чисел, причем некоторые элементы могут повторяться. В целых списках m – число элементов, n – размах списка, тогда разреженный список тот, в котором m<<n. Для хранения разреженных списков в компактной форме используются массивы
Таблица идентификаторов – список, массив двумерный, массив списков, список массивов, массив с хешированием, и опять фиктивные элементы зацикливание и тд и тп,
(смысл, мы отдельно храним идентификаторы и отдельно храним описание идентификатора, алгоритм - ищем идентификатор, а дальше по сылке переходим в таблицу описания идентификатора)