资源简介
输入节点数和边数自动生成无向图并计算桥的数量,一个cpp文件
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
using namespace std;
class lineSet{
public:
//int
int pointNum;
int lineNum;
int set[20000][2];
lineSet(){
lineNum=0;
pointNum=0;
for(int i=0;i<20000;i++){
for(int j=0;j<2;j++){
set[i][j]=-1;
}
}
}
};
vector split(const string &s const string &seperator){
vector result;
typedef string::size_type string_size;
string_size i = 0;
while(i != s.size()){
//找到字符串中首个不等于分隔符的字母;
int flag = 0;
while(i != s.size() && flag == 0){
flag = 1;
for(string_size x = 0; x < seperator.size(); ++x)
if(s[i] == seperator[x]){
++i;
flag = 0;
break;
}
}
//找到又一个分隔符,将两个分隔符之间的字符串取出;
flag = 0;
string_size j = i;
while(j != s.size() && flag == 0){
for(string_size x = 0; x < seperator.size(); ++x)
if(s[j] == seperator[x]){
flag = 1;
break;
}
if(flag == 0)
++j;
}
if(i != j){
result.push_back(s.substr(i j-i));
i = j;
}
}
return result;
}
int lineSum;
void ReadLine(int **map)
{
// cout<<“逐行读取 将行读入字符串 行之间用回车换行区分“< ifstream fin(“data.txt“);
string s;
lineSet ls;
getline(fins);
ls.pointNum = atoi(s.c_str());
cout <<“节点数: “<< ls.pointNum << endl;
getline(fins);
ls.lineNum = atoi(s.c_str());
cout <<“边数: “<< ls.lineNum << endl;
int k;
while (getline(fins))
{
vector v = split(s “ “); //可按多个字符来分隔;
//for(vector::size_type i = 0; i != v.size(); ++i)
// cout< ls.set[k][0]=atoi(v[0].c_str());
ls.set[k++][1]=atoi(v[1].c_str());
//cout << “Read from file: “ << s << endl;
}
k=0;
while(ls.set[k][0]!=-1){
map[ls.set[k][0]][ls.set[k][1]]=1;
map[ls.set[k][1]][ls.set[k][0]]=1;
k++;
}
for(int i=0;i for(int j=0;j if(map[i][j]==1&&i!=j){
++lineSum;
}
}
}
}
int * newIntRaw(int n)
{
return (int *)malloc(sizeof(int) * n);
}
int * newInt(int n int init)
{
int *p = newIntRaw(n);
int i;
for (i = 0; i < n; ++i)
p[i] = init;
return p;
}
int ** newMap(int n int m int init)
{
int **res = (int **)malloc(sizeof(int *) * n);
int i;
for (i = 0; i < n; ++i)
res[i] = newInt(m init);
return res;
}
typedef struct
{
int e;
int n;
int **map;
} Graph;
Graph * newGraph()
{
int n e;
int i;
int from to;
Graph *g = (Graph *)malloc(sizeof(Graph));
//cout<<“逐行读取 将行读入字符串 行之间用回车换行区分“< ifstream fin(“data.txt“);
string s;
lineSet ls;
getline(fins);
ls.pointNum = atoi(s.c_str());
相关资源
- 北京化工大学计算方法(C/C++)讲义
- GBT 28169-2011 嵌入式软件 C语言编码规范
- XUnZip Zip解压缩.rar
- Windows_API_函数大全 C/C++
- 无向图M着色.cpp
- 烟花优化算法(c语言版)
- C语言程序设计教材习题参考答案.do
- 基于MFC的VC++仿QQ浏览器源码(雏形)
- 高效FFT的C/C++代码实现包括基2的DIF和
- c/c++开发网络验证和本地验证
- 操作系统存储管理实验报告c/c++
- C++编写的万年历源码
- C语言进阶源码---基于graphics实现图书
- 井字棋三连棋的AI实现,C/C++
- 《水果忍者》设计报告.doc
- MFC实现的红绿灯程序
- Win32简易画图程序
- C++网络爬虫项目
- 泡泡堂(炸弹人)小游戏C/C++完整源码
- 使用C/C++读取BITMAP的内容
- VC图像处理-用Canny算子提取边缘
- C/C++视频教程
- 个人总结的一些C/C++编码规范
- 高斯消去法求解线性方程组C/C++程序输
- celrityC/C++源码查看工具
- 现代优化设计黄金分割法和二次插值
- 网络编程MFC 实验四 FTP客户端功能实现
- C/C++语言大作业、小游戏
- 粒子群优化算法PSOC++
- 完整的C/C++时序的B+树数据库系统实现
评论
共有 条评论