数据结构与算法

数据结构第二季 Day09 图 拓扑排序、最小生成树、prim算

2021-10-13  本文已影响0人  望穿秋水小作坊

一、 拓扑排序(TopologicalSort)

1、一句话概括什么是 AOV 网?AOV 网必须是有向无环图吗?

image.png

2、什么是前驱活动?什么是拓扑排序?

image.png

3、拓扑排序的核心思路 - 卡恩算法(最重要)?

image.png

4、我们在实际排序中,肯定不能把图结构破坏,那么怎么办?拓扑排序的代码实现思路?

5、拓扑排序的代码实现?

    public List<V> topologicalSort() {
        List<V> list = new ArrayList<>();
        Queue<Vertex<V, E>> queue = new LinkedList<>();
        Map<Vertex<V, E>, Integer> ins = new HashMap<>();
        // 初始化(将度为0的节点都放入队列)
        vertices.forEach((V v, Vertex<V, E> vertex) -> {
            int in = vertex.inEdges.size();
            if (in == 0) {
                queue.offer(vertex);
            } else {
                ins.put(vertex, in);
            }
        });

        while (!queue.isEmpty()) {
            Vertex<V, E> vertex = queue.poll();
            // 放入返回结果中
            list.add(vertex.value);

            for (Edge<V, E> edge : vertex.outEdges) {
                int toIn = ins.get(edge.to) - 1;
                if (toIn == 0) {
                    queue.offer(edge.to);
                } else {
                    ins.put(edge.to, toIn);
                }
            }
        }

        return list;
    }

二、 生成树、最小生成树

1、什么是生成树?

image.png

2、什么是最小生成树?

image.png

3、最小生成树有什么作用?(至少说一点)

image.png

4、求最小生成树有 2 个经典算法,分别是什么?

5、什么是切分定理?

image.png

6、Prim 算法执行过程?(要能理解并口述)

image.png
image.png
image.png
上一篇下一篇

猜你喜欢

热点阅读