![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Class DenseGRAPH
{ int Vent, Ecnt; bool digraph; vector < vector < bool> > adj; public: DenseGRAPH(int V, bool digraph = false) adj(V), Vent(V), Ecnt(0), digraph(digraph) { for (int i = 0; i < V; i++) adj[i].assign(V, false); } int V() const { return Vent; } int E() const { return Ecnt; } bool directed() const { return digraph; } void insert(Edge e) { int v = e.v, w = e.w; if (adj[v][w] == false) Ecnt++; adj [v] [w] a= true; if (! digraph) adj [w] [v] = true; } void remove (Edge e) { int v = e.v, w = e.w; if (adj[v][w] == true) Ecnt--; adj[v][w] = false; if (! digraph) adj[w][v] = false; } bool edge (int v, int w) const { return adj[v][w]; } class adjIterator; friend class adjIterator; };
Программа 17.8. Итератор для представления матрицы смежности_______________ Данная реализация итератора для программы 17.7 использует индекс /для просмотра значений строки v матрицы смежности (adj[v]), пропуская элементы, имеющие значение false. Вызов функции beg(), за которым следует последовательность вызовов функций nxt() (проверка того, что значением функции end() является false перед каждым таким вызовом), позволяет получить последовательность вершин, смежных с вершиной v графа G в порядке возрастания индексов вершин. class DenseGRAPH:: adjIterator { const DenseGRAPH & G; int i, v;
|