• Graph Algorithms, Stored method:Adjancecy martrix, implemented in C++


    code is as follow:

    #include <iostream>
    using namespace std;
    struct Graph{
        
    char* vexs;
        
    int** arcs;
    };
    int main(array<System::String ^> ^args)
    {
        
    int vertices_count;
        cout
    <<"Create a Graph, and store it in adjacensy matrix:"<<endl;
        cout
    <<"step 1:please input the count of vertex:"<<endl;
        cin
    >>vertices_count;//get vertices_count

        
    //init graph
        Graph graph;
        
    char* vexs=new char[vertices_count];
        
    int** arcs=new int*[vertices_count];
        
    for(int i=0;i<vertices_count;i++){
            arcs[i]
    =new int[vertices_count];
        }

        
    //get vertices of graph
        for(int i=0;i<vertices_count;i++){
            cout
    <<"Please input the "<<vertices_count<< " vertex data:"<<endl;
            cin
    >>vexs[i];
        }

        
    //init adjancency matrix
        for(int i=0;i<vertices_count;i++){
            
    for(int j=0;j<vertices_count;j++){
                arcs[i][j]
    =0;
            }
        }

        graph.vexs
    =vexs;
        graph.arcs
    =arcs;

        cout
    <<"Step 2: please input edgs count:"<<endl;
        
    int edgsCount=0;
        cin
    >>edgsCount;
            
        cout
    <<"Step 3: please input vertices,start vertex and end vertext index included:"<<endl;
        
    for(int i=0;i<edgsCount;i++)
        {
            
    int begin,end;
            cout
    <<"input begin vertex index:";
            cin
    >>begin;
            cout
    <<"input end vertex index:";
            cin
    >>end;
            arcs[begin][end]
    =1;
            arcs[end][begin]
    =1;
        }

        cout
    <<"Step 4:output the adjacency of the graph:"<<endl;
        
    for(int i=0;i<vertices_count;i++){
            
    for(int j=0;j<vertices_count;j++){
                cout
    <<graph.arcs[i][j]<<"\t";
            }
            cout
    <<endl;
        }
        
        cout
    <<"Step 5:release memory....";
        
    for(int i=0;i<vertices_count;i++){
            delete[] graph.arcs[i];
        }
        delete[] graph.arcs;
        delete[] graph.vexs;

        
    char in;
        cin
    >>in;
        
    return 0;
    }
  • 相关阅读:
    Java基础语法
    C语言练习题目
    C语言进阶(1)
    C语言易错点
    SQL语句入门
    C语言算法基础
    C语言算法入门
    嵌入式入门
    C语言基础(3)
    C语言基础(2)
  • 原文地址:https://www.cnblogs.com/hanxianlong/p/1737362.html
Copyright © 2020-2023  润新知