有会C++的吗?帮助写个代码 收藏
有会C++的吗?帮助写个代码
有会C++的吗?帮助写个代码
一 上机目的
a、掌握图的基本存储结构和实现方法
b、掌握图的搜索和遍历方法
c、联系实际问题并进行解决
二 实验内容
1)、实现无向图的存储
针对一个含有n个顶点和m条边的无向图,实现该图的邻接表或邻接矩阵存储。
2)、b实现图的深度优先和广度优先遍历
针对a中实现的无向图的存储结构,实现该图的深度优先和广度优先遍历。
3)* 针对实际的网络问题,实现网络的存储,并求出最小生成树。
三 设计说明:写出本上机中所有用到的数据结构的定义
四 功能说明:说明本程序中的每一个函数及其功能。
五 调试分析:内容包括:
(1)
调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析
(2)
算法的时空分析和改进设想
(3)
经验与体会等
六 测试结果
包括输入和输出 (粘贴输入输出界面,即用户屏幕)
七 带注释的源程序
附录 图的建立及遍历
struct head gh[N];
void createadjgra(struct head ga[])
//建立
{
int i,j,k;
struct node *s;
for(i=0;i
{
ga.char1=getchar();
ga.link=NULL;
}
for(k=0; k
{
scanf("%d%d",&i,&j);
s=malloc(sizeof(edgenode));
s->nb=j;
s->next=ga.link;
ga.link=s;
s=malloc(sizeof(edgenode));
s->nb=i;
s->next=ga[j].link;
ga[j].link=s;
}
}
void dfs(struct head ga[],int k,int mark[])
//
从k始深度优先搜索
{ struct node *s;
printf("%4c", ga[k].char1);
mark[k]=1;
s=ga[k].link;
/* first adj*/
while(s)
{if(mark[s->nb]==0) dfs(ga,s->nb,mark);
s=s->next;
}
}
void dfstravering(struct head ga[])
//深度优先
{int j,mark[N];
for (j=0;j
mark[j]=0;
for(j=0;j
if(mark[j]==0) dfs(ga,j,mark);
}
有会C++的吗?帮助写个代码
一 上机目的
a、掌握图的基本存储结构和实现方法
b、掌握图的搜索和遍历方法
c、联系实际问题并进行解决
二 实验内容
1)、实现无向图的存储
针对一个含有n个顶点和m条边的无向图,实现该图的邻接表或邻接矩阵存储。
2)、b实现图的深度优先和广度优先遍历
针对a中实现的无向图的存储结构,实现该图的深度优先和广度优先遍历。
3)* 针对实际的网络问题,实现网络的存储,并求出最小生成树。
三 设计说明:写出本上机中所有用到的数据结构的定义
四 功能说明:说明本程序中的每一个函数及其功能。
五 调试分析:内容包括:
(1)
调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析
(2)
算法的时空分析和改进设想
(3)
经验与体会等
六 测试结果
包括输入和输出 (粘贴输入输出界面,即用户屏幕)
七 带注释的源程序
附录 图的建立及遍历
struct head gh[N];
void createadjgra(struct head ga[])
//建立
{
int i,j,k;
struct node *s;
for(i=0;i
{
ga.char1=getchar();
ga.link=NULL;
}
for(k=0; k
{
scanf("%d%d",&i,&j);
s=malloc(sizeof(edgenode));
s->nb=j;
s->next=ga.link;
ga.link=s;
s=malloc(sizeof(edgenode));
s->nb=i;
s->next=ga[j].link;
ga[j].link=s;
}
}
void dfs(struct head ga[],int k,int mark[])
//
从k始深度优先搜索
{ struct node *s;
printf("%4c", ga[k].char1);
mark[k]=1;
s=ga[k].link;
/* first adj*/
while(s)
{if(mark[s->nb]==0) dfs(ga,s->nb,mark);
s=s->next;
}
}
void dfstravering(struct head ga[])
//深度优先
{int j,mark[N];
for (j=0;j
mark[j]=0;
for(j=0;j
if(mark[j]==0) dfs(ga,j,mark);
}