Здравствуйте. У меня есть задача- написать функции для графа через сопредельные вершины - добавить вершину, добавить ребро, добавить вес ребра. Удалить вершину, удалить ребро, удалить вес ребра Найти смежные ли ребра.
Я начала разбираться но я все равно не могу найти толковый материал. Что нашла (смогла) написила. теперь хочу попросить Вас в помощи. Можете дать ссылку на исходник чтобы можно было посмотреть как на самом деле реализованы эти функции. или если код есть в книгах буду благодарна. А то я уже 2 неделю не могу ничего толкового найти. Спасибо.
То что у меня есть:
//h
#pragma once
#include <vector>
struct Edge
{
public:
Edge(int v, int w);
private:
int mV;
int mW;
};
struct Node
{
public:
Node(int x, Node* node);
private:
int mX;
Node* mNode;
};
class Graph
{
public:
Graph(int key, bool digraph);
void insert(int key);
void insertEdge(Edge edge);
void remove(int key);
void removeEdge(Edge edge);
int V();
int E();
bool directed();
private:
int Vcnt;
int Ecnt;
bool mDigraph = false;
std::vector<std::vector<int>> mVector;
std::vector<Node*> adjacencyLists;
};
// cpp
#include "Graph.h"
Edge::Edge(int v, int w)
: mV(v)
, mW(w)
{
}
Node::Node(int x, Node* node)
: mX(x)
, mNode(node)
{
}
Graph::Graph(int key, bool digraph)
: Vcnt(key)
, Ecnt(0)
, mDigraph(digraph)
, adjacencyLists(key)
{
adjacencyLists.assign(key, 0);
}
void Graph::insert(int key)
{
}
void Graph::insertEdge(Edge edge)
{
int v = edge.mV;
int w = edge.mW;
adjacencyLists[v] = new Node(w, adjacencyLists[v]);
if (!mDigraph)
adjacencyLists[w] = new Node(v, adjacencyLists[w]);
Ecnt++;
}
void Graph::remove(int key)
{
}
void Graph::removeEdge(Edge edge)
{
}
int Graph::V()
{
return Vcnt;
}
int Graph::E()
{
return Ecnt;
}
bool Graph::directed()
{
return mDigraph;
}
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Ошибка на этапе выполненияОтладчиком определил что слетает во втором вызове функции minusEL на месте delete[]ar
Нужна помощь в форматном выводеНужно устанавливать фиксированую ширину поля
Помогите найти ошибку,при выполнении вылезает какая-то непонятная шляпа,весь день не могу понять в чем делоПрограмма должна удалять из строки...
Подскажите пожалуйста, что не так, а то вроде бы типичный код, а ошибка одна и та же постоянно, если что OS Linux Ubuntu, IDE AnjutaЗаранее спасибо за ответы