- 博客(0)
- 资源 (2)
空空如也
数据结构管道铺设课程设计含画图
弗洛伊德算法找出超市最佳选址位置
#include
#include
using namespace std;
const int maxv=20;
#include
#include
#include
#include
#include
struct point
{
char name[10];
int id;
int x;
int y;
//int dst[5];
};
struct node
{
char src[10];
char dst[10];
int cost;
};
/////最小生成树
struct mintree//结构体记录最小生成树的相关信息
{
int begin,end;//起点 终点
int length;//边的权值
};
const int maxweight=9999;
class Graphm//图的矩阵表式
{
public:
int map[maxv][maxv]; //某点到某点两点间的的距离
int mark[maxv]; //加入进来的点的集合
point Vert[maxv];//顶点信息
int Edge[maxv][maxv];//存放边的信息
int numV;//顶点数
int numE;//边数
int path[maxv][maxv];//每对顶点之间路劲
int dist[maxv][maxv];//c每对顶点之间的路径
void shortpath(int n);
mintree tree[maxv];
Graphm();
char* findbyid(int i);
int findbyname(char m[]);
void CreatG();//创建无向图
void print();//矩阵显示图的信息
void draw();
void Prim();
node Node[maxv];
int edgenumE;
int minx(int x,int y);
};
int Graphm::minx(int x,int y)
{
if(x<y) return x;
else
return y;
}
Graphm::Graphm()//矩阵初始化
{
for(int i=0;i<maxv;i++)
for(int j=0;j<maxv;j++)
{
if(i==j) Edge[i][j]=0;
else Edge[i][j]=maxweight;}
numV=0;
numE=0;
}
int Graphm::findbyname(char m[])
{
int j;
for(j=0;j<numV;j++)
{
if(strcmp(Vert[j].name,m)==0) return Vert[j].id;
}
}
char* Graphm::findbyid(int i)
{
int j;
for(j=0;j<numV;j++)
{
if(Vert[j].id==i) return Vert[j].name;
}
}
void Graphm::CreatG()//创建无向图
{
FILE *fp;//定义文件流指针,用于打开读取的文件
int i,k;
if((fp=fopen("data.txt","rb")) == NULL )
{ /* 打开文件 */
printf("Cannot open file !");
return ;
}//只读方式打开文件text.txt
fscanf(fp,"%d",&numV);//读入点数
fscanf(fp,"%d",&numE);
cout<<numV<<endl;
cout<<numE<<endl;
char q,z;
for(i=0;i<numV;i++)//从文件中读取信息 显示到屏幕
{
fscanf(fp,"%s",&Vert[i].name);//读取d顶点信息
Vert[i].id=i+1;
cout<<Vert[i].name<<endl;
}
for(k=0;k<numE;k++)//从文件中读取信息保存到矩阵中
{
int dis;
char i[10],j[10];
fscanf(fp,"%s""%s""%d",i,j,&d
2014-04-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人