Предусловия:
· v1 не равно v2
· вершины v1 и v2 существуют
· ребро v1-v2 не существует
Процесс: вставка ребра соединяющего вершины v1 и v2
Выход: true – ребро добавлено, иначе false
Постусловия: ребро v1-v2 добавлено в граф
Удаление ребра
Вход: номер исходящей вершины v_beg, и входящей v_end
Предусловия: ребро v_beg-v_end существует
Процесс: удаление ребра соединяющего вершины v_beg и v_end
Выход: true – ребро удалено, иначе false
Постусловия: ребро v_beg-v_end удалено из графа
Добавление вершины
Вход: номер вершины num
Предусловия: вершина num не существует
Процесс: вставка вершины num
Выход: true – вершина добавлена, иначе false
Постусловия: вершина добавлена в граф
Удаление вершины
Вход: номер вершины num
Предусловия: вершина num существует
Процесс: удаление вершины num и всех рёбер связанных с ней
Выход: true – вершина удалена, иначе false
Постусловия: вершина и все связанные с ней ребра удалены из графа
Признак существования ребра
Вход: номер исходящей вершины v_beg, и входящей v_end
Предусловия: вершины v_beg и v_end существуют
Процесс: проверка существования ребра, соединяющего вершины v_beg-v_end
Выход: true – если ребро есть, иначе false
Постусловия: нет
Опрос веса ребра
Вход: номер исходящей вершины v_beg, и входящей v_end
Предусловия:
· вершины v_ beg и v_end существуют
· v_beg не равно v_end
· ребро v_beg-v_end существует
Процесс: получение веса ребра v_beg-v_end
Выход: значение веса ребра
Постусловия: генерация исключения при невыполнении предусловия
Задание веса ребра
Вход: номер исходящей вершины v_beg, и входящей v_end, вес типа TypeWeight
Предусловия:
· вершины v_beg и v_end существуют
· v_beg не равно v_end
· ребро v_beg-v_end существует
Процесс: задание веса ребра v_beg-v_end
Выход: true – если вес ребра изменен, иначе false
Постусловия: изменился вес ребра v_beg-v_end
Опрос данных ребра
Вход: номер исходящей вершины v_beg, и входящей v_end
Предусловия:
· вершины v_beg и v_end существуют
· v_beg не равно v_end
· ребро v_beg-v_end существует
Процесс: получение данных ребра v_beg-v_end
Выход: значение данных ребра
Постусловия: генерация исключения при невыполнении предусловия
Задание данных ребра
Вход: номер исходящей вершины v1, и входящей v2, весПредусловия:
· вершины v1 и v2 существуют
· v1 не равно v2
· ребро v1-v2 существует
Процесс: задание данных ребра v1-v2
Выход: true – если данные ребра изменены, иначе false
Постусловия: данные ребра v1-v2 изменены
КОНЕЦ АТД
//Шаблонный класс, реализующий АТД «Простой граф»
public abstract class Graph
{
private int e;
private int v;
private Graph_Orientation orientation;
public Graph_Type type;
public System.Collections.ArrayList vertexCoords = new System.Collections.ArrayList();
public System.Collections.ArrayList vertexData = new System.Collections.ArrayList();
public Graph(Graph_Orientation o)
{
e = v = 0;
orientation = o;
}
public Graph(int _v, int _e, Graph_Orientation o)
{
v = _v;
e = _e;
orientation =o;
}
public int E
{
get
{
return e;
}
set
{
e = value;
}
}
public int V
{
get
{
return v;
}
set
{
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.