严蔚敏的数据结构(C语言版)最短路径算法 代码段:p[w]=p[v];p[w][w]=true;//p[w]=p[v]+[w]是什么意思

其中p为一个二维数组p[][], 请问二维数组这样写是什么意思呢
我写的有歧义误导了大家,我写p[][] 主要是为了说明p是二维数组

我要问的是题目标题中代码里对一个二维数组竟然有p[w]=p[v] 这样的操作
代码注释里写道//p[w]=p[v]+[w] 我不懂这里是什么意思

二维数组P中保存的是v0到各个点的最短路径。在v行中,值为true的列连起来,就是v0到v的最短路径。因为v0到w点的最短路径是v0到v的最短路径在加上<v,w>,所以w列先复制所有的v列的值,然后在将p[w][w]=true。此时w行中所有值为true列,就是v0到w的最短路径
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-19
我认为是列整体赋值的意思 行代表各个点 一个点一个点的去访问 成功选出了下一个点后 需要知道路径 把当前列复制过去等于告诉 路径了 但是问题是不能直接读出路径的顺序 应该还是需要一个算法去读P矩阵 不过这个算法也简单 就是同行逐次增一就行 我是这么理解的。。。
第2个回答  2014-11-10
p[][]即隐式声明的二维数组,没有声明其大小

满意请采纳追问

不要意思我的描述产生了歧义,我知道p[][]是声明二维数组。

我想问的是为什么对一个二维数组竟然有p[w]=p[v] 这样的操作
代码注释里写道//p[w]=p[v]+[w] 我不懂这里是什么意思

追答

当二维数组p[][]的某一维被固定后就成了一维数组p[]

相似回答