zoukankan      html  css  js  c++  java
  • 简单的bfs

    这里主要是写的一个简单的bfs,实例运行了RMAT10无向图,总共有1024个顶点。这种简单的bfs算法存在很明显的缺陷,那就是如果图数据过大,那么进程将会直接被系统杀死。

    代码如下:

    #include <stdio.h>
    #include <iostream>
    #include <map>
    #include <vector>
    #include <sys/types.h>
    #include <unistd.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    using namespace std;
    #define MAX_NODES 1024
    float edges[MAX_NODES][MAX_NODES];
    bool IsVisited[MAX_NODES];
    int main(){
    	for(int i=0;i<MAX_NODES;i++){
    		for(int j=0;j<MAX_NODES;j++)
    			edges[i][j]=-1;//-1 represents no link
    		IsVisited[i]=false;
    	}
    	int fd1;
    	fd1=open("../zhangyangData/RMAT10_undirect",O_RDONLY,0);
    	if(fd1==-1){
    		cout<<"error "<<endl;
    		return 0;
    	}
    	int s,t;
    	float f;
    	while(read(fd1,&s,4)>0&&n>0){
    		read(fd1,&t,4);
    		read(fd1,&f,4);
    		//cout<<s<<" "<<t<<":"<<f<<endl;
    		edges[s][t]=1;
    	}
    	int flag=0,count=0;
    	for(int i=0;i<MAX_NODES;i++){
    		for(int j=0;j<MAX_NODES;j++){
    			if(edges[i][j]==1) flag=1;
    			//cout<<edges[i][j]<<" ";
    		}
    		if(flag) count++;
    		//cout<<endl;
    	}
    	cout<<count<<endl;
    	vector<int> ves;
    	ves.push_back(1023);
    	while(!ves.empty()){
    		int next_node=*ves.begin();
    		cout<<next_node<<" ";
    		IsVisited[next_node]=true;
    		cout<<IsVisited[next_node]<<endl;
    		ves.erase(ves.begin());
    		for(int i=0;i<MAX_NODES;i++){
    			if(edges[next_node][i]>0&&IsVisited[i]==false){																					ves.push_back(i);
    			       IsVisited[i]=true;
    			}
    		}
    		if(ves.empty()){
    			for(int i=0;i<MAX_NODES;i++){
    				if(IsVisited[i]==false)
    					ves.push_back(i);
    			}
    		}
    	}
    	return 0;
    }
    
  • 相关阅读:
    [转]double free or corruption (!prev): 0x080644c8 ***
    linux sleep用法
    ubuntu的终端下修改IP、MAC、DNS及GATE
    jmeter mina2总结
    double free or corruption (!prev): 0x080644c8 ***
    jmeter最简单使用
    超级详细Tcpdump 的用法
    eclipse下打开jmeter源码
    Jmeter 命令行选项目录
    JavaScript的一些实用技巧收藏
  • 原文地址:https://www.cnblogs.com/JsonZhangAA/p/8920143.html
Copyright © 2011-2022 走看看