• 1.如何构建一个图-----邻接矩阵


    #include<iostream>
    using namespace std;
    #define UNVISTITED 0 //表示没有被访问过
    #define VISITED 1   //表示被访问过
    //图类
    class Graph {
    private:
        int numVertex, numEdge;//点的数目和边的数目
        int **matrix;//邻接矩阵
        int *mark;
    public:
        //构造函数
        Graph(int numVert) {
            Init(numVert);
        }
        //析构函数
        ~Graph()
        {
            delete[]mark;
            for (int i = 0; i < numVertex; i++) {
                delete[]matrix[i];
            }
            delete[]matrix;
        }
        //初始化
        void Init(int n) {
            int i;
            numVertex = n;
            numEdge = 0;
            mark = new int[numVertex];
            matrix = new int*[numVertex];
            for (i = 0; i < numVertex; i++) {
                mark[i] = UNVISTITED;
            }
            for (i = 0; i < numVertex; i++) {
                matrix[i] = new int[numVertex];
            }
            for (i = 0; i < numVertex; i++) {
                for (int j = 0; j < numVertex; j++) {
                    matrix[i][j] = 0;
                }
            }
        }
        //返回点的数目
        int n() { return numVertex; }
        //返回边的数目
        int e() { return numEdge; }
        //返回点V的第一个邻居
        int first(int v){
            for (int i = 0; i < n(); i++) {
                if (matrix[v][i] != 0) {
                    return i;
                }
            }
            return -1;
        }
        //返回W后的第一个邻居
        int next(int v, int w) {
            for (int i = w + 1; i < n(); i++) {
                if (matrix[v][i] != 0) {
                    return i;
                }
            }
            return -1;
        }
        //设置v1与v2之间有边,赋值wt
        void setEdge(int v1, int v2, int wt) {
            if (matrix[v1][v2] == 0) {
                matrix[v1][v2] = wt;
                numEdge++;
            }
        }
        //删除v1和v2之间的边
        void deleteEdge(int v1, int v2) {
            if (matrix[v1][v2] == 1) {
                matrix[v1][v2] = 0;
                numEdge--;
            }
        }
    };
    int main() {
    }
  • 相关阅读:
    wince 下,拨号成功,但不能打开网页的问题
    Wince platform configure filesdetail
    WINCE ERRORMSG
    wince 6 s3c2440 io port opearation
    wince 6 kernel configure files
    赞cnblogs
    WINCE DEBUGMSG
    POJ3249 Test for Job DAG最短路
    HDU4552 怪盗基德的挑战书 KMP | 后缀数组 | 暴力
    HDU4554 叛逆的小明 水题
  • 原文地址:https://www.cnblogs.com/caimuqing/p/5845641.html
Copyright © 2020-2023  润新知