Creating a graph using STL's in C++
Below is a implementation of Graph Data Structure in C++ as Adjacency List.I have used STL vector for representation of vertices and STL pair for denoting edge and destination vertex.
struct vertex{
typedef pair ve;
vector adj; //cost of edge, destination vertex
string name;
vertex(string s)
{
name=s;
}
};
class graph
{
public:
typedef map vmap;
vmap work;
void addvertex(const string&);
void addedge(const string& from, const string& to, double cost);
};
void graph::addvertex(const string &name)
{
vmap::iterator itr=work.begin();
itr=work.find(name);
if(itr==work.end())
{
vertex *v;
v= new vertex(name);
work[name]=v;
return;
}
cout<<"\nVertex already exists!";
}
void graph::addedge(const string& from, const string& to, double cost)
{
vertex *f=(work.find(from)->second);
vertex *t=(work.find(to)->second);
pair edge = make_pair(cost,t);
f->adj.push_back(edge);
}
.png)







I am a software programmer working in India. I usually like to blog in my free time.
0 comments: