v = value;
}
}
public Graph_Orientation Orientation
{
get
{
return orientation;
}
}
public abstract bool InsertV(int num);
public abstract bool DeleteV(int num);
public abstract bool InsertE(int v_beg, int v_end);
public abstract bool DeleteE(int v_beg, int v_end);
public abstract int GetEdgeW(int v_beg,int v_end);
public abstract void SetEdgeW(int v_beg, int v_end, int w);
public abstract object getVertex(object criteria);
public abstract bool EdgeExists(int beg, int end);
public abstract void Update(PictureBox pic_box);
public double K()
{
double k = ((double)E / ((double)V * ((double)V - 1.0)));
if (orientation == Graph_Orientation.UNDIRECTED)
k *= 2.0;
return k;
}
public abstract Graph ConvertTo();
public abstract void SetEdgeData(int v_beg, int v_end, object data);
public abstract object GetEdgeData(int v_beg, int v_end);
public abstract int getEdgeCountForVertex(int v_num);
ОБЩАЯ ХАРАКТЕРИСТИКА:
Дескриптор ребра представляет собой набор информации ассоциированной с ребром. Он хранит в себе номера вершин ребра, данные и вес типов, заданных пользователем.
ДАННЫЕ:
Параметры:
Out - Номер вершины из которой выходит ребро
In - Номер вершины в которую входит ребро
Data - Данные связанные с ребром
Weight - Вес ребра
ОПЕРАЦИИ:
Конструктор
Вход: номер вершины, из которой ребро выходит, номер вершины, в которую ребро входит, вес ребра, данные ребра
Предусловия: нет
Процесс: создание дескриптора ребра
Выход: нет
Постусловия: создан дескриптор ребра с переданными параметрами
КОНЕЦ АТД
//Шаблонный класс дескриптор ребра
class GEdge
{
public int v_beg;
public int v_end;
public int weight;
public object data;
public GEdge(int beg, int end)
{
v_beg = beg;
v_end = end;
weight = 0;
data = null;
}
}
ОБЩАЯ ХАРАКТЕРИСТИКА:
Это объект, позволяющий клиентской программе получить доступ к значениям данных, скрытых в коллекции «Простой статический граф», играя роль обобщенного указателя на данные, хранящиеся в коллекции. Даёт возможность перемещаться по вершинам графа, осуществлять переход к первой и следующим вершинам, получать их номер.
ДАННЫЕ:
Параметры:
current_elem– позиция текущей вершины
gr - граф, в котором происходит обход вершин
ОПЕРАЦИИ:
Конструктор
Вход: ссылка на объект типа «Простой граф»
Предусловия: нет
Процесс: создание объекта «Итератор вершин»
Выход: нет
Постусловия: создан объект итератор вершин графа
Установка итератора на первую вершину
Вход: нет
Предусловия: граф не пуст
Процесс: установка итератора на первую вершину
Выход: нет
Постусловия: итератор установлен на первую вершину, m_position = 0
Установка итератора на следующую вершину
Вход: нет
Предусловия: граф не пуст и итератор не вышел за предел графа
Процесс: установка итератора на следующую вершину
Выход: нет
Постусловия: итератор установлен на следующую вершину, current_elem увеличен на единицу
Проверка на выход за границы коллекции
Вход: нет
Предусловия: нет
Процесс: проверка вышел ли итератор за пределы коллекции
Выход: true - итератор вышел за пределы, иначе false
Постусловия: нет
Получение номера вершины
Вход: нет
Предусловия: граф не пуст и итератор находится внутри графа
Процесс: получение номера вершины
Выход: номер вершины графа, на которую указывает итератор; генерация исключения при несоблюдении предусловия
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.