资源简介
输入节点数和边数自动生成无向图并计算桥的数量,一个cpp文件
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
using namespace std;
class lineSet{
public:
//int
int pointNum;
int lineNum;
int set[10000][2];
lineSet(){
lineNum=0;
pointNum=0;
for(int i=0;i<10000;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));
ifstream fin(“data.txt“);
string s;
lineSet ls;
getline(fins);
ls.pointNum = atoi(s.c_s
- 上一篇:学生成绩管理系统V6.0 c语言大作业
- 下一篇:计算无向图中桥的数量环算法超快
相关资源
- 棋盘极小满覆盖
- 某软件公司大约有30名员工,每名员工
- 学院学生管理系统C语言 数据结构 文
- 用哈夫曼编码实现文件压缩代码+报告
- 哈夫曼编码译码器 C语言 数据结构课
- 用C语言设计并实现一个一元稀疏多项
- Huffman编码(二叉树应用)
- 学生管理系统的设计与实现
- 数据结构 通讯录管理 课程设计C++单链
- 数据结构程序设计学生成绩管理系统
- 数据结构 运动会分数统计实习报告
- 数据结构c语言 学生成绩管理系统
- 哈夫曼编码与译码附报告
- 数据结构抽象性实验——关于B树的基
- [数据结构课程设计——C语言描述第
- 清华大学数据结构C语言版习题答案
- 图的深度优先遍历C语言数据结构
- 哈夫曼编码系统C语言实现
- 数据结构大作业贪吃蛇和实验报告
- 医务室的模拟 c语言 数据结构
- 数据结构哈夫曼编码译码C语言版程序
- 基于数据结构c语言实现的银行叫号系
- 迷宫求解算法数据结构c语言
- 数据结构——迷宫
- 循环队列c程序
- 史上最全经典数据结构算法c语言实现
- 老鼠走迷宫数据结构课程设计
- 数据结构之迷宫求解完整代码(C语言
- 数据结构列车时刻表管理系统
- C语言:中缀算术表达式求值栈 附答案
评论
共有 条评论