简单的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;
}
简单的bfs的更多相关文章
- 超超超简单的bfs——POJ-3278
Catch That Cow Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 89836 Accepted: 28175 ...
- HDU 1253:胜利大逃亡(简单三维BFS)
pid=1253">胜利大逃亡 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/ ...
- NYOJ--1276--机器设备(河南省第九届省赛,简单的bfs)
机器设备 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 Alpha 公司设计出一种节能的机器设备.它的内部结构是由 N 个齿轮组成.整个机器设备有 一个驱动齿轮,当 ...
- 搜索入门_简单搜索bfs dfs大杂烩
dfs题大杂烩 棋盘问题 POJ - 1321 和经典的八皇后问题一样. 给你一个棋盘,只有#区域可以放棋子,同时同一行和同一列只能有一个棋子. 问你放k个棋子有多少种方案. 很明显,这是搜索题. ...
- 简单的BFS学习笔记
什么是BFS传送门. 今天学习BFS,加油! 先定义个数组: struct Node{ int a=0; int b=0; int step=0; }; int map[5][4]={//地图 0,0 ...
- HDU1253--胜利大逃亡--HDU1240--Asteroids!--简单三维BFS
胜利大逃亡 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- hdu--1104--Remainder(简单的bfs)
Remainder Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total S ...
- 超超超简单的bfs——POJ-1915
Knight Moves Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 26102 Accepted: 12305 De ...
- hdu2717Catch That Cow 简单BFS
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2717 刚开始思路错了,用的DP,一直WA,后来才发现是搜索,还是简单的BFS,顿时.... 思路: B ...
随机推荐
- Perl正则表达式引用
正则表达式两篇: 基础正则 Perl正则 本文是对Perl正则的一点扩展,主要内容是使用qr//创建正则对象,以及一些其它的技巧. qr//创建正则对象 因为可以在正则模式中使用变量替换,所以我们可以 ...
- Web笔记(一) Web 简介与开发环境搭建
Web应用程序的工作原理 大多数的Web应用程序结构都是采用最为流行的B/S软件开发体系结构,将Web应用程序部署在Web服务器上,只要Web服务器启动,用户就可以通过客户端浏览器发送HTTP请求到W ...
- pxe+http+kickstart实验原理
1.说明 所谓的PXE是Preboot Execution Environment的缩写,字面上的意思是开机前的执行环境. 要实现pxe,至少需要3个服务 2.流程 注意:全部用的udp封装 1)cl ...
- 蓝桥杯试题----- 打印大X
打印大X 小明希望用星号拼凑,打印出一个大X,他要求能够控制笔画的宽度和整个字的高度.为了便于比对空格,所有的空白位置都以句点符来代替. 要求输入两个整数m n,表示笔的宽度,X的高度.用空格分开(0 ...
- tomcat端口修改以及jvm启动参数设置
1.端口更改:找到config目录下server.xml文件 如下 <?xml version='1.0' encoding='utf-8'?> <!-- Licensed to t ...
- Java基础IO流(五)RandomAccessFile
RandomAccessFile java提供的对文件内容的访问,既可以读文件也可以写文件.RandomAccessFile支持随机访问文件,可以访问文件的任意位置 (1)java文件模型: 在 ...
- Docker 系列六(Docker Swarm 项目).
一.前言 随着互联网快速发展,以及微服务架构的流行,服务器的压力越来越大.上一篇介绍的 Docker Compose 项目,可以将多个容器捏合在一起,实现容器间的通信,比如 Web 项目对 DB.Ca ...
- 谈谈MySQL支持的事务隔离级别,以及悲观锁和乐观锁的原理和应用场景?
在日常开发中,尤其是业务开发,少不了利用 Java 对数据库进行基本的增删改查等数据操作,这也是 Java 工程师的必备技能之一.做好数据操作,不仅仅需要对 Java 语言相关框架的掌握,更需要对各种 ...
- couldn't resolve host api.weixin.qq.com
1.代理服务器突然出现 couldn't resolve host api.weixin.qq.com 不知原因 2.重启nginx无效-----代码肯定没有动过(之前出现过,过了一天恢复) 3.防火 ...
- canvas-a10isPointPath.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...