Professional Documents
Culture Documents
Zadatak
Zadatak
Zadatak
void setR(double x)
{
this->r=x;
}
double getR()
{
return r;
}
Krug operator+(Krug const &obj)
{
Krug novi;
novi.r=this->r+obj.r;
return novi;
}
Krug operator-(Krug const &obj)
{
Krug novi;
novi.r=this->r-obj.r;
return novi;
}
};
void clear()
{
v.erase(v.begin(),v.end());
v.clear();
velicina=0;
}
T print(T x)
{
return v[x];
}
void erase(T x)
{
for(int i=0; i<velicina; i++)
{
if(x==v[i])
{
v.erase (v.begin()+i);
}
3. Algoritam za najkraći put for (auto& adj_vertex : G[vertex])//ide u
#include <iostream> susjedne vrhove
#include <vector> {
#include<map>
#include <set>
using namespace std;
if (visited.count(adj_vertex.first) == 0)
typedef int vertexType; {
template<class T>
using Graph = map<vertexType, map<vertexType,
T>>; next_vertex.insert({ distance_from_src +
adj_vertex.second,adj_vertex.first });
int main() cout << vertex;
{
Graph<double>G; }
int n; //broj bridova
cin >> n; }
vertexType v1, v2;
for (int i = 0; i < n; i++) }
{ finish:
cin >> v1 >> v2;
cin >> G[v1][v2]; return 0;
} }
vertexType src, dst;
cin >> src >> dst;
set<vertexType> visited;
set<pair<double, vertexType>> next_vertex;
next_vertex.insert({ 0,src });
while (!next_vertex.empty())
{
double distance_from_src =
next_vertex.begin()->first;
next_vertex.erase(next_vertex.begin());
if (visited.count(vertex) > 0)
{
continue;
}
visited.insert(vertex);
if (vertex == dst)
{
if((upper_bound(vektor.begin(),vektor.end(),ve
ktor[i])-
lower_bound(vektor.begin(),vektor.end(),vekto
r[i]))%2==1)
{
lista.remove(vektor[i]);
}
}