zoukankan      html  css  js  c++  java
  • 无向图(2.无向图的实现类)

    此篇文章为实现《算法》一书中提到的大部分无向图算法,分为多篇,

    即多个Java文件,可以直接复制,便于学习;

    第二篇,java无向图的类实现,此篇主要列出实现的方法,需要参考其他类中方法(后续实现);

    参考链接:https://www.cnblogs.com/xiaohuiduan/p/11352209.html#e5b9bfe5baa6e4bc98e58588e9818de58e86_6

    /**
     * FileName: UndirGraph
     * Author:   Jerry
     * Date:     2020/2/10 19:48
     * Description: 无向图的数据结构
     */
    package graph;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class UndirGraph extends Graph {
        /**
         * 继承父类的构造函数
         * @param V
         */
        public UndirGraph(int V) {
            super(V);
        }
    
        /**
         * 在图中添加一条边v-w
         * @param v
         * @param w
         */
        @Override
        void addEdge(int v, int w) {
            adj[v].add(w);
            adj[w].add(v);
            this.E++;
        }
    
        /**
         * 获得与v相邻的所有顶点
         * @param v
         * @return
         */
        @Override
        Iterable<Integer> adj(int v) {
            return adj[v];
        }
    
        /**
         * 获得与s相连通的所有顶点
         * @param s
         * @return
         */
        @Override
        Iterable<Integer> search(int s) {
            DepthFirstSearch dfs = new DepthFirstSearch(this, s);
            List list = new ArrayList<Integer>();
            for (int i = 0; i < this.V(); i++) {
                if (dfs.getMarked(i)) {
                    list.add(i);
                }
            }
            return list;
        }
    
        /**
         * 是否存在s结点到v结点的路径
         * @param s
         * @param v
         * @return
         */
        @Override
        boolean hasPathTo(int s, int v) {
            DepthFirstSearchPath dfsPath = new DepthFirstSearchPath(this,s);
            return dfsPath.hasPathTo(v);
        }
    
        /**
         * 找出s到v的路径
         * @param s
         * @param v
         * @return
         */
        @Override
        Iterable<Integer> pathTo(int s, int v) {
            DepthFirstSearchPath dfsPath = new DepthFirstSearchPath(this,s);
            return dfsPath.pathTo(v);
        }
    
    
    }
    

      

  • 相关阅读:
    WebApp 里Meta标签大全,webappmeta标签大全
    写给自己的Java程序员学习路线图
    JAVA学习路线图
    JavaScript经典作用域问题(转载)
    js 判断当前操作系统是ios还是android还是电脑端
    css动画,展开折叠图标
    CSU 1335 高桥和低桥
    codevs 1341 与3和5无关的数
    noi 7827 质数的和与积
    51nod 1082 与7无关的数
  • 原文地址:https://www.cnblogs.com/AccompanyingLight/p/12294050.html
Copyright © 2011-2022 走看看