当前位置: 首页>>代码示例>>C++>>正文


C++ GraphNode::addAdjacentNode方法代码示例

本文整理汇总了C++中GraphNode::addAdjacentNode方法的典型用法代码示例。如果您正苦于以下问题:C++ GraphNode::addAdjacentNode方法的具体用法?C++ GraphNode::addAdjacentNode怎么用?C++ GraphNode::addAdjacentNode使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在GraphNode的用法示例。


在下文中一共展示了GraphNode::addAdjacentNode方法的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;
            }
            
        }
    }
}
开发者ID:charlieroberts,项目名称:topicnet,代码行数:38,代码来源:graph.cpp

示例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
    
}
开发者ID:charlieroberts,项目名称:topicnet,代码行数:80,代码来源:graph.cpp


注:本文中的GraphNode::addAdjacentNode方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。