ргр по алгоритмам и структурам данных. АиСД РГР, ключников. Разработка атд Простой граф
Скачать 135.4 Kb.
|
6. АТД «итератор вершин»6.1. Формат АТД «итератор вершин»Итератор вершин - это объект, позволяющий клиентской программе получить доступ к значениям данных, скрытых в коллекции «Простой граф», играя роль обобщенного указателя на данные, хранящиеся в коллекции. Даёт возможность перемещаться по вершинам графа, осуществлять переход к первой и следующим вершинам, получать их номер. ДАННЫЕ: Параметры: Vertices – указатель на вектор вершин Current – позиция текущей вершины ОПЕРАЦИИ: Конструктор Вход: нет Предусловия: нет Процесс: создание пустого объекта «Итератор вершин» Выход: нет Постусловия: создан пустой объект итератор вершин графа Конструктор Вход: ссылка на объект типа «Простой граф» Предусловия: нет Процесс: создание объекта «Итератор вершин» Выход: нет Постусловия: создан объект итератор вершин графа Установка на первую вершину Вход: нет Предусловия: граф не пуст Процесс: установка итератора на первую вершину Выход: true – установлен на первую вершину, false – в противном случае Постусловия: нет Установка на последнюю вершину Вход: нет Предусловия: граф не пуст Процесс: установка итератора на последнюю вершину Выход: true – установлен на последнюю вершину, false – в противном случае Постусловия: нет Установка на следующую вершину Вход: нет Предусловия: граф не пуст и итератор не вышел за пределы графа Процесс: установка итератора на следующую вершину Выход: true – итератор перешел к следующей вершине, false – в противном случае Постусловия: итератор установлен на следующую вершину, m_iCurrent увеличен на единицу Проверка на выход за границы коллекции Вход: нет Предусловия: нет Процесс: проверка вышел ли итератор за пределы коллекции Выход: true - итератор вышел за пределы, иначе false Постусловия: нет Получение дескриптора текущей вершины Вход: нет Предусловия: граф не пуст Процесс: получение дескриптора вершины Выход: дескриптор вершины, на который указывает итератор Постусловия: нет 6.2. Клиентское определение класса «итератор вершин»public class IteratorVertexes public IteratorVertexes(Graph public Vertex public Vertex public void Next()//++ public Vertex 7. АТД «итератор ребер»7.1. Формат АТД «итератор ребер»Это объект, позволяющий клиентской программе получить доступ к значениям данных, скрытых в коллекции «Простой статический граф», играя роль обобщенного указателя на данные, хранящиеся в коллекции. Даёт возможность перемещаться по рёбрам графа, осуществлять переход к первому и следующим рёбрам, получать дескриптор текущего ребра. ДАННЫЕ: Параметры: EdgeIterator – указатель на базовый класс итератора ОПЕРАЦИИ: Конструктор Вход: нет Предусловия: нет Процесс: создание пустого объекта «Итератор ребер» Выход: нет Постусловия: создан пустой объект итератор ребер графа Конструктор Вход: ссылка на объект типа «Простой граф» Предусловия: нет Процесс: создание объекта «Итератор ребер» Выход: нет Постусловия: создан объект итератор ребер графа Установка на первое ребро Вход: нет Предусловия: множество ребер не пусто Процесс: установка итератора на первое ребро Выход: true – установлен на первое ребро, false – в противном случае Постусловия: нет Установка на последнее ребро Вход: нет Предусловия: множество ребер не пусто Процесс: установка итератора на последнее ребро Выход: true – установлен на последнее ребро, false – в противном случае Постусловия: нет Установка на следующее ребро Вход: нет Предусловия: множество ребер не пусто и итератор не вышел за пределы графа Процесс: установка итератора на следующее ребро Выход: true – итератор перешел к следующему ребру, false – в противном случае Постусловия: нет Проверка на выход за границы коллекции Вход: нет Предусловия: нет Процесс: проверка вышел ли итератор за пределы коллекции Выход: true - итератор вышел за пределы, иначе false Постусловия: нет Получение дескриптора текущего ребра Вход: нет Предусловия: множество ребер не пусто и итератор не вышел за пределы графа Процесс: получение дескриптора ребра Выход: дескриптор ребра, на которое указывает итератор Постусловия: нет |