若有向图具有拓扑排序序列,那么它的邻接矩阵........

傻瓜学者 2009-12-05 07:08:00
若一个有向图具有拓扑排序序列,那么它的邻接矩阵必定为()。
A.对称矩阵
B.稀疏矩阵
C.三角矩阵
D.一般矩阵
答案:C

我觉得AB首先排除了,问题就是CD。我觉得应该选D。也就是说它不一定是三角矩阵。因为顶点虽然无环,但其指向不一定是从小到大或从大到小啊。
譬如:
1指6、7
7指5
6指2
2指3
3、5指4
这就是一个有向无环图,它的邻接矩阵为:
0000011
0010000
0001000
0000000
0001000
0100000
0000100
这明显不是三角矩阵。

请教大家了!
...全文
2245 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
傻瓜学者 2009-12-06
  • 打赏
  • 举报
回复
楼上的话很有建设性哈~~
qiuzhenguang 2009-12-05
  • 打赏
  • 举报
回复
我也不明白,帮顶。
有向图在进行拓扑排序的时候,不是用邻接表来表示的吗?一般不用邻接矩阵来表示吧。
wjt2000 2009-12-05
  • 打赏
  • 举报
回复 1
感觉 出题者的意识是:
该图的拓扑排序序列具有唯一性,否则的话答案 是D

如果唯一的话,应该是 C
傻瓜学者 2009-12-05
  • 打赏
  • 举报
回复
自己顶一下!
pz0513 2009-12-05
  • 打赏
  • 举报
回复
我觉得题目可能认为上下三角矩阵合并在一起的矩阵也叫三角矩阵。。。这样就对了。。
傻瓜学者 2009-12-05
  • 打赏
  • 举报
回复
先感谢两位。
希望这道题的出题意图和2楼朋友一样。这种题根本就是争议题~
3楼的头像很COOL哈~
实验题目: 图的应用 实验目的: (1)熟练掌握图的基本存储方法; (2)熟练掌握图的深度优先和广度优先搜索方法; (3)掌握AOV网和拓扑排序算法; (4)掌握AOE网和关键路径。 实验内容: 拓扑排序。 任意给定一个有向图,设计一个算法,对它进行拓扑排序拓扑排序算法思想:a. 在有向图中任选一个没有前趋的顶点输出;b.从图中删除该顶点和所有以它为尾的 弧;c.重复上述a、b,直到全部顶点都已输出,此时,顶点输出序列即为一个拓朴 有序序列;或者直到图中没有无前趋的顶点为止,此情形表明有向图中存在环。 设计分析: 为实现对无权值有向图进行拓扑排序,输出拓扑序列,先考虑如何存储这个有向图。拓 扑排序的过程中要求找到入度为0的顶点,所以要采用邻接表来存储有向图,而要得到邻 接表,则先要定义有向图邻接矩阵结构,再把邻接矩阵转化成邻接表。 在具体实现拓扑排序的函数中,根据规则,当某个顶点的入度为0(没有前驱顶点)时, 就将此顶点输出,同时将该顶点的所有后继顶点的入度减1,为了避免重复检测入度为0 的顶点,设立一个栈St,以存放入度为0的顶点。 源程序代码: #include #include #define MAXV 10 // 最大顶点个数 typedef struct { int edges[MAXV][MAXV]; // 邻接矩阵的边数组 int n; // 顶点数 }MGraph; typedef struct ANode { int adjvex; // 该弧的终点位置 struct ANode * nextarc; // 指向下一条弧的指针 }ArcNode; typedef struct { int no; // 顶点信息 int count; // 顶点入度 ArcNode * firstarc; // 指向第一条弧 }VNode, AdjList[MAXV]; typedef struct { AdjList adjlist; // 邻接表 int n; // 图的顶点数 }ALGraph; void MatTolist(MGraph g, ALGraph * &G) { int i, j, n=g.n; ArcNode * p; G = (ALGraph *)malloc(sizeof(ALGraph)); for (i=0; iadjlist[i].firstarc = NULL; for (i=0; i=0; j--) if (g.edges[i][j]!=0) { p=(ArcNode *)malloc(sizeof(ArcNode)); p->adjvex = j; p->nextarc = G->adjlist[i].firstarc; G->adjlist[i].firstarc = p; } G->n=n; } void TopSort(ALGraph * G) { int i,j,flag=0,a[MAXV]; int St[MAXV], top = -1; // 栈St的指针为top ArcNode * p; for (i=0; in; i++) // 入度置初值为0 G->adjlist[i].count = 0; for (i=0; in; i++) // 求所有顶点的入度 { p=G->adjlist[i].firstarc; while (p!=NULL) { G->adjlist[p->adjvex].count++; p=p->nextarc; } } for (i=0; in; i++) if (G->adjlist[i].count==0) // 入度为0的顶点进栈 { top++; St[top] = i; } while (top>-1) // 栈不为空时循环 { i = St[top]; top--; // 出栈 a[flag++]=i; // 输出顶点 p=G->adjlist[i].firstarc; // 找第一个相邻顶点 while (p!=NULL) { j = p->adjvex; G->adjlist[j].count--; if (G->adjlist[j].count==0) { top++; St[top] = j; // 入度为0的相邻顶点进栈 } p = p->nextarc; // 找下一个相邻顶点 } } if (flagn) printf("该图存在回路,不存在拓扑序列!\n"); else { printf("该图的一个拓扑序列为:"); for(i=0; i
1 目录 一.数论.... 4 1.阶乘最后非零位 ...... 4 2. 模线性方程(组) ..... 4 3. 素数表.. 6 4. 素数随机判定(miller_rabin) .. 6 5. 质因数分解 .. 7 6. 最大公约数欧拉函数 ... 8 二.图论_匹配 . 9 1. 二分图最大匹配(hungary 邻接表形式) ..... 9 2. 二分图最大匹配(hungary 邻接表形式,邻接阵接口) ...... 10 3. 二分图最大匹配(hungary 邻接阵形式) ... 10 4. 二分图最大匹配(hungary 正向表形式) ... 11 5. 二分图最佳匹配(kuhn_munkras 邻接阵形式) .. 11 6. 一般图匹配(邻接表形式) . 12 7. 一般图匹配(邻接表形式,邻接阵接口) .... 13 8. 一般图匹配(邻接阵形式) . 14 9. 一般图匹配(正向表形式) . 15 三.图论_生成树 ... 16 1. 最小生成树(kruskal 邻接表形式) ..... 16 2. 最小生成树(kruskal 正向表形式) ..... 17 3. 最小生成树(prim+binary_heap 邻接表形式) ..... 19 4. 最小生成树(prim+binary_heap 正向表形式) ..... 20 5. 最小生成树(prim+mapped_heap 邻接表形式) .. 21 6. 最小生成树(prim+mapped_heap 正向表形式) .. 22 7. 最小生成树(prim 邻接阵形式)... 23 8. 最小树形图(邻接阵形式) . 24 四.图论_网络流 ... 25 1. 上下界最大流(邻接表形式) 25 2. 上下界最大流(邻接阵形式) 26 3. 上下界最小流(邻接表形式) 27 4. 上下界最小流(邻接阵形式) 29 5. 最大流(邻接表形式) .. 30 6. 最大流(邻接表形式,邻接阵接口) ..... 31 7. 最大流(邻接阵形式) .. 32 8. 最大流无流量(邻接阵形式) 32 9. 最小费用最大流(邻接阵形式) ... 33 五. 图论_最短路径 34 1. 最短路径(单源bellman_ford 邻接阵形式) . 34 2. 最短路径(单源dijkstra_bfs 邻接表形式) 35 3. 最短路径(单源dijkstra_bfs 正向表形式) 35 4. 最短路径(单源dijkstra+binary_heap 邻接表形式) .. 36 2 5. 最短路径(单源dijkstra+binary_heap 正向表形式) .. 37 6. 最短路径(单源dijkstra+mapped_heap 邻接表形式) 38 7. 最短路径(单源dijkstra+mapped_heap 正向表形式) 39 8. 最短路径(单源dijkstra 邻接阵形式) 40 9. 最短路径(多源floyd_warshall 邻接阵形式) ..... 40 六. 图论_连通性 .... 41 1. 无向图关键边(dfs 邻接阵形式) . 41 2. 无向图关键点(dfs 邻接阵形式) . 42 3. 无向图块(bfs 邻接阵形式) .. 43 4. 无向图连通分支(bfs 邻接阵形式) .... 43 5. 无向图连通分支(dfs 邻接阵形式) .... 44 6. 有向图强连通分支(bfs 邻接阵形式) 44 7. 有向图强连通分支(dfs 邻接阵形式) 45 8. 有向图最小点基(邻接阵形式) ... 46 七. 图论_应用 46 1.欧拉回路(邻接阵形式) 46 2. 前序表转化 47 3. 树的优化算法 ...... 48 4. 拓扑排序(邻接阵形式). .... 49 5. 最佳边割集 50 6. 最佳顶点割集 ...... 51 7. 最小边割集 52 8. 最小顶点割集 ...... 53 9. 最小路径覆盖 ...... 55 八. 图论_NP 搜索.. 55 1. 最大团(n 小于64)(faster).. 55 2. 最大团 58 九. 组合... 59 1. 排列组合生成 ...... 59 2. 生成gray 码 . 60 3. 置换(polya) 61 4. 字典序全排列 ...... 61 5. 字典序组合 62 6. 组合公式.... 62 十. 数值计算.. 63 1. 定积分计算(Romberg) ...... 63 2. 多项式求根(牛顿法) .. 64 3. 周期性方程(追赶法) .. 66 十一. 几何...... 67 1. 多边形 67 2. 多边形切割 70 3. 浮点函数.... 71 4. 几何公式.... 76 5. 面积.... 78 3 6. 球面.... 79 7. 三角形 79 8. 三维几何.... 81 9. 凸包(graham) 89 10. 网格(pick) 91 11. 圆 ...... 92 12. 整数函数.. 94 13. 注意.. 96 十二. 结构...... 97 1. 并查集 97 2. 并查集扩展(friend_enemy) .. 98 3. 堆(binary) ... 98 4. 堆(mapped) 99 5. 矩形切割.... 99 6. 线段树...... 100 7. 线段树扩展 . 102 8. 线段树应用 . 105 9. 子段和...... 105 10. 子阵和.... 105 十三. 其他.... 106 1. 分数.. 106 2. 矩阵.. 108 3. 日期.. 110 4. 线性方程组(gauss) ... 111 5. 线性相关.. 113 十四. 应用.... 114 1. joseph 114 2. N 皇后构造解 ..... 115 3. 布尔母函数 . 115 4. 第k 元素.. 116 5. 幻方构造.. 116 6. 模式匹配(kmp) .. 118 7. 逆序对数.. 118 8. 字符串最小表示 119 9. 最长公共单调子序列 ...... 119 10. 最长子序列 ...... 120 11. 最大子串匹配 .. 121 12. 最大子段和 ...... 122 13. 最大子阵和 ...... 123
一.数论 4 1.阶乘最后非零位 4 2. 模线性方程(组) 4 3. 素数表 6 4. 素数随机判定(miller_rabin) 6 5. 质因数分解 7 6. 最大公约数欧拉函数 8 二.图论_匹配 9 1. 二分图最大匹配(hungary邻接表形式) 9 2. 二分图最大匹配(hungary邻接表形式,邻接阵接口) 10 3. 二分图最大匹配(hungary邻接阵形式) 10 4. 二分图最大匹配(hungary正向表形式) 11 5. 二分图最佳匹配(kuhn_munkras邻接阵形式) 11 6. 一般图匹配(邻接表形式) 12 7. 一般图匹配(邻接表形式,邻接阵接口) 13 8. 一般图匹配(邻接阵形式) 14 9. 一般图匹配(正向表形式) 15 三.图论_生成树 16 1. 最小生成树(kruskal邻接表形式) 16 2. 最小生成树(kruskal正向表形式) 17 3. 最小生成树(prim+binary_heap邻接表形式) 19 4. 最小生成树(prim+binary_heap正向表形式) 20 5. 最小生成树(prim+mapped_heap邻接表形式) 21 6. 最小生成树(prim+mapped_heap正向表形式) 22 7. 最小生成树(prim邻接阵形式) 23 8. 最小树形图(邻接阵形式) 24 四.图论_网络流 25 1. 上下界最大流(邻接表形式) 25 2. 上下界最大流(邻接阵形式) 26 3. 上下界最小流(邻接表形式) 27 4. 上下界最小流(邻接阵形式) 29 5. 最大流(邻接表形式) 30 6. 最大流(邻接表形式,邻接阵接口) 31 7. 最大流(邻接阵形式) 32 8. 最大流无流量(邻接阵形式) 32 9. 最小费用最大流(邻接阵形式) 33 五. 图论_最短路径 34 1. 最短路径(单源bellman_ford邻接阵形式) 34 2. 最短路径(单源dijkstra_bfs邻接表形式) 35 3. 最短路径(单源dijkstra_bfs正向表形式) 35 4. 最短路径(单源dijkstra+binary_heap邻接表形式) 36 5. 最短路径(单源dijkstra+binary_heap正向表形式) 37 6. 最短路径(单源dijkstra+mapped_heap邻接表形式) 38 7. 最短路径(单源dijkstra+mapped_heap正向表形式) 39 8. 最短路径(单源dijkstra邻接阵形式) 40 9. 最短路径(多源floyd_warshall邻接阵形式) 40 六. 图论_连通性 41 1. 无向图关键边(dfs邻接阵形式) 41 2. 无向图关键点(dfs邻接阵形式) 42 3. 无向图块(bfs邻接阵形式) 43 4. 无向图连通分支(bfs邻接阵形式) 43 5. 无向图连通分支(dfs邻接阵形式) 44 6. 有向图强连通分支(bfs邻接阵形式) 44 7. 有向图强连通分支(dfs邻接阵形式) 45 8. 有向图最小点基(邻接阵形式) 46 七. 图论_应用 46 1.欧拉回路(邻接阵形式) 46 2. 前序表转化 47 3. 树的优化算法 48 4. 拓扑排序(邻接阵形式). 49 5. 最佳边割集 50 6. 最佳顶点割集 51 7. 最小边割集 52 8. 最小顶点割集 53 9. 最小路径覆盖 55 八. 图论_NP搜索 55 1. 最大团(n小于64)(faster) 55 2. 最大团 58 九. 组合 59 1. 排列组合生成 59 2. 生成gray码 60 3. 置换(polya) 61 4. 字典序全排列 61 5. 字典序组合 62 6. 组合公式 62 十. 数值计算 63 1. 定积分计算(Romberg) 63 2. 多项式求根(牛顿法) 64 3. 周期性方程(追赶法) 66 十一. 几何 67 1. 多边形 67 2. 多边形切割 70 3. 浮点函数 71 4. 几何公式 76 5. 面积 78 6. 球面 79 7. 三角形 79 8. 三维几何 81 9. 凸包(graham) 89 10. 网格(pick) 91 11. 圆 92 12. 整数函数 94 13. 注意 96 十二. 结构 97 1. 并查集 97 2. 并查集扩展(friend_enemy) 98 3. 堆(binary) 98 4. 堆(mapped) 99 5. 矩形切割 99 6. 线段树 100 7. 线段树扩展 102 8. 线段树应用 105 9. 子段和 105 10. 子阵和 105 十三. 其他 106 1. 分数 106 2. 矩阵 108 3. 日期 110 4. 线性方程组(gauss) 111 5. 线性相关 113 十四. 应用 114 1. joseph 114 2. N皇后构造解 115 3. 布尔母函数 115 4. 第k元素 116 5. 幻方构造 116 6. 模式匹配(kmp) 118 7. 逆序对数 118 8. 字符串最小表示 119 9. 最长公共单调子序列 119 10. 最长子序列 120 11. 最大子串匹配 121 12. 最大子段和 122 13. 最大子阵和 123

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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