русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Лабораторная работа № 3


Дата добавления: 2015-07-23; просмотров: 762; Нарушение авторских прав


«Реализация абстрактных типов данных».

 

В качестве основных представителей абстрактных типов данных (АТД ) рассматриваются:

Список (L), представляющий собой последовательность элементов a1, a 2, … , a n , где n ≥ 0 и все его элементы ai относятся к определённому типу данных datatype.

Стек (S) − это специальный тип списка, в котором все вставки и удаления выполняются только на одном конце, называемом вершиной (top).

Очередь (Q) − другой специальный тип списка, где элементы вставляются с одного конца, называемым задним (rear), а удаляются с другого, переднего (front).

 

Для АТД типа список L определено следующее множество операторов:

End (L). Возвращает позицию, следующую за последней позицией n в n – элементном списке L. Позиция End (L), рассматриваемая как расстояние от начала списка, которое может изменяться при увеличении или уменьшении списка, в то время как другие позиции имеют неизменное расстояние от начала списка.

Insert(x, p, L). Этот оператор вставляет элемент x в позицию p в списке L, перемещая элементы от позиции p и далее в следующую, долее высокую позицию. Таким образом , если список L состоит из элементов a1, a 2, … , a n , то после выполнения данного оператора он будет иметь вид a1, a 2, …, a p-1, x, a p ,…, a n . Если в списке L нет позиции p, то результат выполнения данного оператора не определён.

Locate (х, L). Эта функция возвращает позицию объекта x в списке L. Если в списке объект x встречается несколько раз, то возвращается позиция первого от начала списка объекта x. Если объекта x нет в списке L, то возвращается END(L).

Retrive (p, L) Эта функция возвращает элемент, который стоит в позиции p в списке L. Результат не определён, если p = END(L) или в списке нет позиции р.

Delete (p, L). Этот оператор удаляет элемент в позиции p списка L. Так если список L состоит из элементов a1, a 2, … , a n , то после выполнения данного оператора он будет иметь вид a1, a 2, …, a p-1, a p+1 ,…, a n. Результат не определён, если в списке L нет позиции p или p = END (L).



Next (p, L) и Previous (p, L). Эти функции возвращают соответственно следующую и предыдущую позиции от позиции p в списке L. Если p − последняя позиция в списке L, то Next (p, L) = END(L). Функция Next не определена, когда p = END (L). Функция Previous не определена, если p = 1. Обе функции не определены, если в списке L нет позиции p.

Makenull (L). Эта функция делает список L пустым и возвращает позицию END(L).

First (L). Эта функция возвращает первую позицию в списке L. Если список пустой, то возвращается позиция END (L).

Printlist (L). Печатает элементы списка L в порядке их расположения.

Double (L). Возвращает список D, состоящий из элементов, которые имеют пару в списке L.

Purge (L). Процедура вычищает из списка L повторяющиеся элементы.

Для АТД семейства стек S свойственны следующие пять операторов:

Makenull (S). Делает стек S пустым.

Top (S).Возвращает элемент из вершины стека.

Pop (S). Удаляет элемент из вершины стека.

Push (x, S). Вставляет элемент x в вершину стека S, элемент находившийся ранее в вершине стека, становится элементом, следующим за вершиной, и т.д.

Empty (S). Эта функция возвращает значение true (истина), если стек S пустой, и значение false (ложь) в противном случае.

Для работы с АТД семейства очередь Q распространены следующие операторы:

Makenull (Q). Очищает очередь Q, делая её пустой.

Front (Q). Функция возвращает первый элемент очереди Q.

EnQueue (x, Q). Вставляет элемент x в конец очереди Q.

DeQueue (Q). Удаляет первый элемент очереди Q.

Empty (Q) возвращает значение true тогда и только тогда, когда Q является пустой очередью.

 

Задание: Реализовать на языке высокого уровня (С++) один из 3-х указанных АТД (список, стек, очередь) и 3 оператора для работы с ним (см. табл.1-3).

Таблица 1. Список

Варианты Операторы
1. Insert(x, p, L) +   +       +  
2. Locate (х, L)   +     +   +  
3. Retrive (p, L) +     +       +
4. Delete (p, L)     +     +    
5. Next (p, L)       +        
6. Previous (p, L)   +            
7. First (L)     +     +   +
8. Makenull (L) +       +      
9. Printlist (L)   +       +   +
10. Double (L)       +        
11. Purge (L)         +   +  

Таблица 2. Стек

 

Варианты Операторы
1. Makenull (S)   +   +        
2. Top (S) +             +
3. Pop (S) +     +     +  
4. Push (x, S)   +     + +   +
5. Empty (S)     +       +  
6. Printlist (S)             +  
7. Locate (х, S)     +     +   +
8. Retrive (p, S) +     + +      
9. Double (S)   +       +    
10. Purge (S)     +   +      

 

 

Таблица 3. Очередь

 

Варианты Операторы
1. Makenull (L)   +   +        
2. Front (Q) +             +
3. EnQueue (x, Q) +     +     +  
4. DeQueue (Q)   +     + +    
5. Empty (Q)             +  
6. Printlist (Q)     +       +  
7. Locate (х, Q)     +   + +   +
8. Retrive (p, Q) +     + +      
9. Double (Q)     +     +    
10. Purge (Q)   +           +

 

 



<== предыдущая лекция | следующая лекция ==>
Лабораторная работа № 2 | 


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.276 сек.