文章

15

粉丝

0

获赞

6

访问

820

头像
【2024年】408计算机统考真题模拟考试 - 第41题答案笔记
数据结构
发布于2025年5月6日 23:03
阅读数 35

计算机考研408统考历年真题及答案解析

 

你的答案:

(1) 根据题干可得,G一定是一个无环且静态的AOV网,若有环不符合现实逻辑。因此一定有拓扑序列;若G中存在两条及以上独立的链(例如1->2->4与3->5),那么G的拓扑排序序列一定不唯一,此时在初始状态下必然会出现两个及以上入度为0的点,因此需要先检查这个情况;若G中仅有一条链,某个顶点的入度或出度>1,那么G中就不存在唯一的拓扑序列,又因为G是用邻接矩阵存储的,故可以检查每个顶点的入度与出度,若某个值大于1,则返回0,但是检查入度的操作可以放到前面去做,即之前检查是否有两个及以上入度为0的顶点或一个入度大于2的顶点,之后再单独检查出度;前面全部检查完没有问题,则返回1。时间复杂度为O(|V|^2)与空间复杂度为O(1)。
(2)
// 算法主体
int solution(MGraph G) {
    int zeroInDegreeCount = 0;    // 记录无入度顶点的数量
    for (int i = 0; i < G.numVertices; i++) {
        int inDegree = 0;    // 顶点i的入度

        for (int j = 0; j < G.numVertices; j++) {
             if (G.Edge[j][i] == 1) {    // j到i有一条有向边,入度+1
                 inDegree++; 
                 if (inDegree > 1)    // 如果入度 > 1,则返回0

       ...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发