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);
        }
    
    
    }
    

      

  • 相关阅读:
    0907 安装 Pycharm
    zabbix监控redis多实例(low level discovery)
    zabbix3.0配置邮件报警
    zabbix通过jmx监控tomcat
    分布式文件系统FastDFS安装与配置(单机)
    nginx+tomcat配置https
    利用python分析nginx日志
    查找IP来源
    清除nginx静态资源缓存
    Nginx缓存配置及nginx ngx_cache_purge模块的使用
  • 原文地址:https://www.cnblogs.com/AccompanyingLight/p/12294050.html
Copyright © 2011-2022 走看看