本文整理汇总了C++中GraphNode::addAdjacentEdge方法的典型用法代码示例。如果您正苦于以下问题:C++ GraphNode::addAdjacentEdge方法的具体用法?C++ GraphNode::addAdjacentEdge怎么用?C++ GraphNode::addAdjacentEdge使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GraphNode
的用法示例。
在下文中一共展示了GraphNode::addAdjacentEdge方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: preprocess
void Graph :: preprocess(){
//we want all the edges to have pointer to the nodes its connecting
//we also want all nodes to know about its adjacency nodes
//we will do so by traversing all the edges
for (int e=0; e< edgelist.size(); e++) {
GraphEdge * thedg = edgelist.at(e);
int frid = thedg->from;
int toid = thedg->to;
bool foundfrom = false;
bool foundto = false;
GraphNode * fromend;
GraphNode * toend;
//find these nodes in the adjlist
for (int a=0; a<adjlist.size(); a++) {
GraphNode * nd = adjlist.at(a);
if (!foundfrom && nd->getnodeid() == frid) {
fromend = nd;
thedg->setFrom(fromend);
fromend->addAdjacentEdge(thedg);
foundfrom = true;
}
if (!foundto && nd->getnodeid() == toid) {
toend = nd;
thedg->setTo(toend);
toend->addAdjacentEdge(thedg);
foundto = true;
}
if(foundto && foundfrom){
fromend -> addAdjacentNode(toend);
toend->addAdjacentNode(fromend);
break;
}
}
}
}
示例2: iss
void Graph :: preprocessauthorgraph(){
//we want all the edges to have pointer to the nodes its connecting
//we also want all nodes to know about its adjacency nodes
//we will do so by traversing all the edges
//for this particular data we have to work with string id's
for (int e=0; e< edgelist.size(); e++) {
GraphEdge * thedg = edgelist.at(e);
string frst = thedg->strfrom;
string tostr = thedg->strto;
bool foundfrom = false;
bool foundto = false;
GraphNode * fromend;
GraphNode * toend;
//find these nodes in the adjlist
for (int a=0; a<adjlist.size(); a++) {
GraphNode * nd = adjlist.at(a);
if (!foundfrom && nd->getstrid() == frst) {
fromend = nd;
fromend->addAdjacentEdge(thedg);
thedg->from = fromend -> getnodeid();
thedg->setFrom(fromend);
foundfrom = true;
}
if (!foundto && nd->getstrid() == tostr) {
toend = nd;
thedg->setTo(toend);
toend->addAdjacentEdge(thedg);
thedg->to = toend -> getnodeid();
foundto = true;
}
if(foundto && foundfrom){
fromend -> addAdjacentNode(toend);
toend->addAdjacentNode(fromend);
break;
}
}
}
//change labels to be the first letters
for (int a=0; a<adjlist.size(); a++) {
string lab = adjlist.at(a)->getLabel();
istringstream iss(lab);
vector<string> names;
do
{
string sub;
iss >> sub;
names.push_back(sub);
//cout << "Substring: " << sub << endl;
} while (iss);
//form the new string
string newlabel;
newlabel += names[0].substr(0,1);
newlabel += names[1].substr(0,1);
/*
for(int i=0; i<names.size(); i++){
newlabel += names[i].substr(0, 1);
}
*/
adjlist.at(a)->setShortLabel(newlabel);
//printf("old label: %s, new label: %s \n", lab.c_str(), newlabel.c_str());
}
ramdomizePositions(false); //since author graph has no initial positions
// we have to assign positions
}