当前位置: 首页 > news >正文

图的刷题..

1.连通无向图以邻接表作为存储结构,设计一个算法,利用图的遍历算法求出图
中结点的最大关键字值。结点类型定义如下:

typedef struct node
{int adjvex;
Struct node *next;
} edgenode; /边表中结点的类型/
Typedef struct
{int vertex; /结点的关键字是整形/
edgenode *link;
} vexnode; /结点表中结点的类型/
int max=0;
void DFS(ALgraph G,int v)
{
Arcnode *p;
int w;
if(G.vertice[i].data>max)
max=G.vertice[i].data;

for(p=G.vertice[i].firstarc;p;p=p->nextarc)
   {
   	w=p->adjvex;
   	if(!visited[w])
   	DFS(G,w);
   }

}

2.以邻接表 T 作为存储结构,设计一个算法,判断在一个有向图中是否有从顶点
v 到顶点 w 的边。

DFS(ALgraph G,int vi,int vj)
{ Arcnode *p;
int w;
if(vi==vj)
return true;
visited[vi]=TRUE;
for(p=G.vertice[i].firstarc;p;p=p->next)
{
w=p->adjvex;
if(!visited[w])
DFS(G,boolw,vj);
}
}

.
3.设计一个函数完成: 首先输入 i 和 j,然后检查边(vi,vj)是否存在? 如果存在,则
删除该边,函数返回

3.用邻接矩阵表示无向图,类型定义如下:
#define n 32 /图中顶点个数/
typedef char vextype; /顶点的类型
typedef int adjtype; /邻接矩阵中数组元素的类型/
typedef struct
{vextype vexs[n]; /顶点表域/
adjtype arcs[n][n]; /邻接矩阵域/
} graph;

void Delete_x(Graph G,int i,int j)
{
for(int i=0;i<G.vexnum;i++)
for(int j=0;j<G.vexnum;j++)
{
if(G.edge[i][j]==1||G.edge[j][i]==1)
G.edge[i][j]=G.edge[j][i]=0;
else
G.edge[i][j]=G.edge[j][i]=1;
}
}

4.设计算法,求出无向连通图中距离顶点 V 的最短路径长度为 K 的所有的
结点。 (设已经具备两个函数: FirstAdj(g,v)返回顶点 v 的第一个邻接点,
NextAdj(g,v,w)返回顶点 v 当前邻接点 w 的下个邻接点)。
//有问题
int DFS(ALgraph G,int vi,int i,int k)
{ static i=0;
Arcnode *p;
int w;
i++;
if(i==k)
return vi ;
visited[vi]=TRUE;
for(w=FirstAdj(G,vi);w>=0;w=NextAdj(G,vi,w))
{

	if(!visited[w]) 
	DFS(G,w,i,k);
}

}

5.给定一个具有 n 个顶点的无向图的邻接表,设计一个算法将这个邻接表转换为邻
接矩阵,邻接矩阵转换为邻接表

//邻接表转换为矩阵
void Reverse(ALGraph G1 Graph G2)
{
for(int i=0;i<vexnum;i++)
for(int j=0;j<vexnum;j++)
G2.Edge[i][j]=0; //初始化
for(int i=0;i<vexmun;i++)
{ for(p=G1.vertice[i].firstarc;p;p=p->nextarc)
{
w=p->adjvex;
G2.Edge[i][j]=p->data;
}

}

}

//邻接矩阵转为邻接表
void Reverse(ALGraph &G1,Graph &G2)
{ Arcnode *p;
for(i=0;inum;i++)
for(j=0;jvexnum;j++)
G2.edge[i][j]=0; //初始化

for(int i=0;i<G1.vexnum;i++)
{
	for(p=G1.vertice[i].firstarc;p;p=p->next)
	{
		w=p->adjvex;
		G2.Edge[i][j]=1;
	}
}

}

6.无向图采用邻接矩阵存储表示,设计算法,求顶点 v 和顶点 w 之间的最短
路径
*//迪杰斯特拉
int DFS(ALgraph G,int vi,int vj)
{ Arcnode *p;
int w;
static int i=0;
i++;
if(vi==vj)
{
printf(“%d”,i);
}
for(p=G.vertice[vi].firstarc;p;p=p->nextarc)
{
w=p->adjvex;
if(!visited[w])
DFS(G,w,vj);
}
}

7.有向图采用邻接表存储表示,设计算法,输出各顶点的所有出边及其出度
void Display(ALgraph G)
{ int n=0;
Arcnode *p;
int w;
for(int i=0;i<G.vexnum;i++)
{ n=0;
printf(“%d的出边和出度”,i)
for(p=G.vextice[i].firstarc;p;p=p->next)
{
w=p->adjvex;
printf(“%d “,w);
n++;
}
printf(” %d”,n);
}
}

相关文章:

  • 机器学习个人总结(王道版)
  • 【Machine Learning】8.逻辑回归及其在分类问题的应用
  • ZYNQ之路--带你弄明白Vivado设计流程
  • 最大子数组和-前缀和/动态规划/分治/暴力-Java/c++
  • [JS]JavaScript 注释 输入输出语句
  • 网络笔记大全(超详细)
  • 网课题库接口使用
  • 【计算方法】python实现高斯消去、列主元高斯消去,LU分解分别求解线性方程组
  • 回归预测 | MATLAB实现GA-BP多输入单输出回归预测
  • Nmap的API和库文件
  • Linux命令 -文件权限配置的深入(chown/chmod/setfacl)
  • ubuntu安装selenium
  • React脚手架工具创建项目的详细介绍
  • 26_TokenMongodb
  • 【工具】使用 sealos 部署 k8s 集群
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • CSS 三角实现
  • JavaScript设计模式系列一:工厂模式
  • Odoo domain写法及运用
  • STAR法则
  • 飞驰在Mesos的涡轮引擎上
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 高性能JavaScript阅读简记(三)
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 利用jquery编写加法运算验证码
  • 山寨一个 Promise
  • 试着探索高并发下的系统架构面貌
  • Android开发者必备:推荐一款助力开发的开源APP
  • 我们雇佣了一只大猴子...
  • ​configparser --- 配置文件解析器​
  • ###STL(标准模板库)
  • #{}和${}的区别?
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (编译到47%失败)to be deleted
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (一)认识微服务
  • (转)http-server应用
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • *2 echo、printf、mkdir命令的应用
  • .NET CF命令行调试器MDbg入门(一)
  • .Net mvc总结
  • .net 发送邮件
  • .net 简单实现MD5
  • .net 生成二级域名
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • .NET教程 - 字符串 编码 正则表达式(String Encoding Regular Express)
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • .Net下的签名与混淆
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • [ 云计算 | AWS ] 对比分析:Amazon SNS 与 SQS 消息服务的异同与选择