zoukankan      html  css  js  c++  java
  • 数据结构之图

    图就是顶点和边的集合。通常用邻接表(邻接链)表示。
    线性主要从查找和删除上初步接触差异和效率。
    树主要概念在于递归,抽象建模。
    而图在抽象建模的层次上更进一层,主要是抓住图的多对多的根本特征,把多点看成一点,把新入点的边算进来,算成一个超级大点。
    刚开始会不容易懂。但是明白之后,比特殊的树简单多了。
    package com.linson.datastrcture;
    
    import java.util.ArrayList;
    import java.util.List;
    
    
    
    //图就是顶点和边的集合。
    //线性主要从查找和删除上初步接触差异和效率。
    //树主要概念在于递归,抽象建模。
    //而图在抽象建模的层次上更进一层,主要是抓住图的多对多的根本特征,把多点看成一点,把新入点的边算进来。
    public class MyLinkGraph<T>
    {
        //顶点
        public static class MyVertex<T>
        {
            public T mData;
            public MyEdge<T> mNextEdge;
            public Integer externInfo;//扩展字段:存储动态权重。
            public List<MyVertex<T>> path;//扩展字段:存储临时最短路径
            public MyVertex()
            {
                mData=null;
                mNextEdge=null;
                externInfo=Integer.MAX_VALUE;
                path=new ArrayList<MyVertex<T>>();
            }
            public MyVertex(T value,MyEdge<T> next)
            {
                mData=value;
                mNextEdge=next;
                externInfo=Integer.MAX_VALUE;
                path=new ArrayList<MyVertex<T>>();
            }
        }
        
        //
        public static class MyEdge<T>
        {
            public MyVertex<T> mEndNode;
            public Integer mWeight;
            public MyEdge<T> mOtherEdge;//注意这里是另一条边,意思是从固定点开始的所有边。而不是一条连一条的边。
            
            public MyEdge(Integer _weight,MyEdge<T> next,MyVertex<T> EndNode)
            {
                mEndNode=EndNode;
                mWeight=_weight;
                mOtherEdge=next;
            }
        }
        
        public MyLinkGraph()
        {}
        
        @SuppressWarnings("unchecked")
        public MyLinkGraph(int vetexSum)
        {
            mVertexs= new MyVertex[vetexSum];
        }
        
        public MyVertex<T>[] mVertexs=null;
    }
  • 相关阅读:
    angularJS指令--在各自的控制器里调用不同的函数
    npm install时的一个小问题
    按特定形式生成当前日期的函数
    js判断对象是否是数组的方法
    转正考试的几个考点
    JS 对象转化为数组
    requireJS随笔
    使用bootstrap-select插件,赋初始值
    理解Stream(一)——串行与终止操作
    python requests 库 首次使用
  • 原文地址:https://www.cnblogs.com/lsfv/p/10198537.html
Copyright © 2011-2022 走看看