弟弟的作业,让我做才发现做不好!一起来看看!(有代码)!最好能把你做的写出来!

oktay 2005-07-14 03:57:36
问题:
图的基本操作与实现
(1)自选存储结构,输入含n个顶点(用字符表示顶点)和e
条边的图G;
(2)求每个顶点的度,输出结果;
(3)判断图G是否是连通图,输出信息“YES”/“NO”;
(4)如果选用的存储结构是邻接矩阵,则用邻接矩阵的信息生
成图G的邻接表,即复制图G,然再执行操作(2);反之亦然


我的代码:
#include <iostream.h>
#include <stdlib.h>

typedef char VerT;
typedef char DataType;
const int MaxVertices = 100;
const int MaxWeight = 10000;
const int MaxQueueSize = 100;

#include "AdjMWGraph.h"
#include "CreatAdjMWGraph.h"

void Printchar(char item)
{
cout << item<<" ";
}
//主函数测试flag为0表示无向图,为1表示有向图
void main(void)
{
AdjMWGraph g;
char a[] = {'A','B','C','D','E'}; //测试图1
RowColWeight rcw[] = {{0,1,10},{0,4,20},{1,3,30},
{2,1,40},{2,3,50}}; //测试图1

//char a[] = {'A','B','C','D','E','F','G','H','I'}; //测试图2
//RowColWeight rcw[] = {{0,1,1},{0,2,1},{0,7,1},{0,4,1},
//{0,5,1},{2,3,1},{5,6,1}}; //测试图2

// char a[] = {'A'}; //测试图3
//RowColWeight rcw[] = {{0,0,0}}; //测试图3
int n = 0, e = 0,flag;
cout<<"请输入FLAG的值(0无向,1有向)"<<endl;
cout<<"flag = ";
cin>>flag;
cout<<"输入顶点的个数和边的条数:"<<endl;
cout<<"顶点的个数: ";
cin>>n;
cout<<"边的条数: ";
cin>>e;
cout<<endl;
CreatGraph(g, a, n, rcw, e,flag);
cout << "顶点个数为:" << g.NumOfVertices() << endl;
cout << "边的条数为:" << g.NumOfEdges() << endl;
cout<<endl;
g.countd(flag); //求各个顶点的度
cout << "深度优先搜索序列为:";
g.DepthFirstSearch(Printchar);
cout<<endl;
}

  
/*第三部分判断是否为连通图。图以邻接矩阵为存储结构,判断给定结点vi和任意结点vj之间是否有路径.
根据连通图的定义若有图为连通图.*/
    
int pathDFSM(MGraph *G,int i,int j)
{

int k;
    
visited[i]=TRUE;
    
for(k=0;k<G->n;k++)
//依次搜索vi的邻接点
     
if(G->edges[i][k]==1&&!visited[k])
      
if (k==j) return 1;
//有路径相通

cout<<"Yes"<<endl;
      
else return(pathDFSM(G,k,j);
     
return 0;
//无路径相通

cout<<"No"<<endl;
   
}//DFSM

/*第四部分:在邻接矩阵信息基础上生成邻接表。逐个扫描邻接矩阵的各个元素,如第i行第j列的元素
为1,则相应的邻接表的第i个单链表上增加一个j结点。*/
void transform(int adjarray[n][n],adjlist adj)
{
int i,j;
edgenode *p;
for(i=0;i<n;i++)
{
adj[i].data=i;

adj[i].link=NULL;
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(adjarray[i][j]==1)
{
p=(edgenode *)malloc(sizeof(edgenode));
p→adjvex=j;
p→next=adj[i].link;
adj[i].link=p;
}
}
}

...全文
143 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
K 2005-07-15
  • 打赏
  • 举报
回复
你这是害你弟弟
oktay 2005-07-14
  • 打赏
  • 举报
回复
晚上10点结帐!有答案的发我邮箱oktay@163.com!
oktay 2005-07-14
  • 打赏
  • 举报
回复
有什么办法啊!谁叫他是我亲弟弟呢!再说还有把柄在他手上!你要我怎么办啊?
oktay 2005-07-14
  • 打赏
  • 举报
回复
有什么办法啊!谁叫他是我亲弟弟呢!再说还有把柄在他手上!你要我怎么办啊?
xiaonian_3654 2005-07-14
  • 打赏
  • 举报
回复
你这是害你弟弟
oktay 2005-07-14
  • 打赏
  • 举报
回复
100分求完整的解答!
为了弟弟,我豁出去了!
好心痛啊!
oktay 2005-07-14
  • 打赏
  • 举报
回复
兄弟,你能不能写下啊!我是学硬件开发的,编程的事情不是很清楚!写个程序出来看看嘛!
defyer007 2005-07-14
  • 打赏
  • 举报
回复
用DFS/WFS遍历图,如果不能通过任意一个节点访问到所有的节点,则不是连通图
defyer007 2005-07-14
  • 打赏
  • 举报
回复
使用邻接表和逆邻接表为存储结构,非常容易求度和连通性
内容概要:本研究聚焦于将视觉同步定位与建图(Visual-SLAM)技术与粒子群优化(PSO)算法相结合,实现无人机在复杂环境下的高效路径规划。通过Matlab代码实现,构建了一套完整的仿真系统,首先利用Visual-SLAM算法对无人机飞行环境进行实时感知与地图构建,获取精确的环境特征点与自身位姿信息;随后,将SLAM提供的环境信息转化为路径规划的约束条件,引入粒子群优化算法搜索从起点到终点的最优飞行路径,在保证避障的前提下,优化路径长度、平滑度与能耗等目标。该方法有效融合了环境感知与智能优化,提升了无人机在未知或动态环境中的自主导航能力。; 适合人群:具备一定Matlab编程基础、对无人机控制、SLAM算法或智能优化算法感兴趣的高校研究生、科研人员及自动化、机器人相关领域的工程技术人员。; 使用场景及目标:① 学习和复现基于Visual-SLAM的无人机环境感知与建图流程;② 掌握粒子群优化算法在路径规划中的具体应用与实现方法;③ 研究多算法融合的智能路径规划解决方案,为后续的无人机自主飞行项目提供技术参考和代码基础。; 阅读建议:建议读者结合Matlab代码逐行分析,重点关注SLAM模块输出数据与PSO算法输入接口的衔接逻辑,可通过修改环境参数和算法参数来观察路径规划结果的变化,从而深入理解算法的核心机制与优化过程。

15,447

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧