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

      

  • 相关阅读:
    编程语言是一种宗教
    execel 的java库
    c3p0配置学校
    Linux 文件命令精通指南
    几个WEB中常用的js方法
    不可多得的Javascript(AJAX)开发工具 - Aptana
    JDBC连不上Oracle数据库的解决方法
    利用PROFILE管理口令和资源
    ORACLE 数据库名、实例名、ORACLE_SID的区别
    用Java编写Oracle存储过程
  • 原文地址:https://www.cnblogs.com/AccompanyingLight/p/12294050.html
Copyright © 2011-2022 走看看