设计一个算法,输出从u到v的全部最短路径(採用邻接表存储)
思想:用path数组存放路径(初始为空),d表示路径长度(初始为-1),查找从顶点u到v的最短路径过程如图所看到的:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" align="left" alt="">
相应算法例如以下:
void FindPath(AGraph *G,int u,int v,int path[ ],int d)
{
int w,i;
ArcNode *p;
d++;
path[d]=u;
visited[u]=1;//路径长度增1
if(u==v)
{
for(i=0;i<=d;i++)
printf("%2d",path[i]);
printf("\n");
}
p=G->adjlist[u].firstarc;//p指向v的第一个相邻点
while(p!=NULL)
{
w=p->adjvex;
if(visited[w]==0)//若w顶点未訪问,递归訪问它
FindPath(G,w,v,path,d);
p=p->nextarc;//p指向v的下一个邻接点
}
visited[u]=0;//恢复环境。使该顶点可又一次使用
}
设计一个算法,输出从u到v的全部最短路径(採用邻接表存储)的更多相关文章
- 设计一个算法,採用BFS方式输出图G中从顶点u到v的最短路径(不带权的无向连通图G採用邻接表存储)
		思想:图G是不带权的无向连通图.一条边的长度计为1,因此,求带顶点u和顶点v的最短的路径即求顶点u和顶点v的边数最少的顶点序列.利用广度优先遍历算法,从u出发进行广度遍历,类似于从顶点u出发一层一层地 ... 
- 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 	如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。
		给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润. 注意你不能在买入股票前卖出股票. 示例 ... 
- 设单链表中存放n个字符,试设计一个算法,使用栈推断该字符串是否中心对称
		转载请注明出处:http://blog.csdn.net/u012860063 问题:设单链表中存放n个字符.试设计一个算法,使用栈推断该字符串是否中心对称,如xyzzyx即为中心对称字符串. 代码例 ... 
- python学习:设计一个算法将缺失的数字找出来。
		算法题 已知整型数值 a[99], 包含的所有99个元素都是从1-100中随机取值,并且这99个数两两互不相等,也就是说从1到100这100个数字有99个在数值内,有一个缺失.请设计一个算法将缺失 ... 
- 有一个线性表,采用带头结点的单链表L来存储,设计一个算法将其逆置,且不能建立新节点,只能通过表中已有的节点的重新组合来完成。
		有一个线性表,采用带头结点的单链表L来存储,设计一个算法将其逆置,且不能建立新节点,只能通过表中已有的节点的重新组合来完成. 分析:线性表中关于逆序的问题,就是用建立链表的头插法.而本题要求不能建立新 ... 
- 设计一个算法,求非空二叉树中指定的第k层(k>1)的叶子节点的个数
		思想:採用基于层序遍历的方法. 用level扫描各层节点,若某一层的节点出队后.rear指向该层中最右节点.则将rear赋值给last(对于第一层.last=1).在出队时,若front=last,表 ... 
- 数据结构作业——P53算法设计题(6):设计一个算法,通过一趟遍历确定长度为n的单链表中值最大的结点
		思路: 设单链表首个元素为最大值max 通过遍历元素,与最大值max作比较,将较大值附给max 输出最大值max 算法: /* *title:P53页程序设计第6题 *writer:weiyuexin ... 
- iOS 常用算法之设计一个算法,验证某字符是否为合法IPV4字符
		浅析 : 一个IPV4字符由3个大于0小于255的数字 以及 3个点构成, 所有我们需要判断小数点数量是否满足条件, 以及小数点隔开的每部分是否满足条件即可. 思路: 1. 校验是否有3个小数点; 2 ... 
- 一个线性表中的元素为整数,设计一个算法,将正整数和负整数分开,使线性表的前一半为负整数,后一半为正整数。(C语言)
		以下为完整可运行示例代码: #include <stdio.h> #include <stdlib.h> typedef struct LNode{ int data; str ... 
随机推荐
- [Everyday Mathematics]20150208
			对 $f\in C^2(\bbR)$ 适合 $$\bex \vlm{|x|}f(x)=0, \eex$$ 试证: $$\bex \int_{\bbR} |f'|^p\rd x \leq (p-1)^\ ... 
- C# winform 若要在加载设计器前避免可能发生的数据丢失,必须纠正以下错误
			winform中有时添加了新控件之后编译会报错: 若要在加载设计器前避免可能发生的数据丢失,必须纠正以下错误,如图: 解决方案: 1.“解决方案”→“批生成”→“清理”→“确定”: 2.“解决方案”→ ... 
- OpenStack Cinder组件支持的块存储设备表
			摘自恒天云官网:http://www.hengtianyun.com/download-show-id-18.html OpenStack的Cinder组件底层可以连接多种存储设备和方案,每一个Ope ... 
- HDU-4742 Pinball Game 3D 三维LIS
			题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4742 题意:求3维的LIS.. 用分治算法搞得,参考了cxlove的题解.. 首先按照x排序,然后每个 ... 
- 搭建linux下teamspeak3多人语音服务器
			最近项目中新的需求,需要支持多人在线实时通话.就安装测试一下teamspeak.http://www.teamspeak.com/ 主页有服务器版本和客户端版本供下载安装.软硬件环境: melot@m ... 
- 修复Debian(Ubuntu)Grub2 引导
			重装win7, 之前的系统debian 的引导就没有了. 而debian 的盘似乎没有ubuntu的livecd模式,于是用ultraISO将ubuntu的ios文件写入到u盘中. boot时选择启动 ... 
- Codeforces 599C Day at the Beach(想法题,排序)
			C. Day at the Beach One day Squidward, Spongebob and Patrick decided to go to the beach. Unfortunate ... 
- My97DatePicker时间控件使用说明
			常规调用: <input id="date01" type="text" onClick="WdatePicker()"/> & ... 
- POJ 3671 Dining Cows (DP,LIS, 暴力)
			题意:给定 n 个数,让你修改最少的数,使得这是一个不下降序列. 析:和3670一思路,就是一个LIS,也可以直接暴力,因为只有两个数,所以可以枚举在哪分界,左边是1,右边是2,更新答案. 代码如下: ... 
- c语言 while (~scanf("%d%d",&n,&m)) 在这里这个符号“~”是什么意思
			按位取反,简单地说就是二进制1变0,0变1 由于scanf是有返回值的,且返回值为int型 特别的此处用法导致只有scanf返回-1,循环才会结束,也就是要返回EOF while (~scanf(&q ... 
