zoukankan      html  css  js  c++  java
  • 图的存储

    1.邻接矩阵

    typedef struct{
        char Vex[N];//顶点表 
        int Edge[N][N];//邻接矩阵,边表 
        int vexnum, arcnum;//图的当前顶点数和弧数 
    }MGraph;

    2.邻接表

    typedef struct ArcNode{//边表结点 
        int adjvec;//该弧所指向顶点的位置 
        struct ArcNode *next;//指向下一条弧的指针
        //int info;//网的边权值 
    }ArcNode;
    typedef struct VNode{//顶点表结点 
        char data;//顶点信息 
        ArcNode *first;//指向第一条依附该顶点的弧的指针 
    }VNode, AdjList[N];
    typedef struct{
        AdjList vertices;//邻接表 
        int vexnum, arcnum;//图的顶点数和弧数 
    }ALGraph;//邻接表存储的图类型 
    
    //确定顶点位置 
    int LocateVex(ALGraph *G, char v){
        for(int i = 0; i < (G->vexnum); i++){
            if(G->vertices[i].data == v)
                 return i;
        }
    }

    3.十字链表(有向图)

    typedef struct ArcNode{
        int tailvex, headvex;
        struct ArcNode *hlink, *tlink;
        //InfoType info; 
    }ArcNode;
    typedef struct VNode{
        char data;
        ArcNode *fisrtin, *firstout;
    }VNode;
    typedef struct VNode{
        VNode xlist[N];
        int vexnum, arcnum;
    }GLGraph;

     

    4.邻接多重表(无向图)

    typedef struct ArcNode{
        bool mark;
        int ivex, jvex;
        struct ArcNode *ilink, *jlink;
        //InfoType info; 
    }ArcNode;
    typedef struct VNode{
        char data;
        ArcNode *firstedge;
    }VNode;
    typedef struct{
        VNode adjmulist[N];
        int vexnum, arcnum;
    }AMLGraph;

  • 相关阅读:
    JMeter学习(二十三)关联
    最常用的DOS命令
    不同类型的操作系统
    分级存储管理的四大优点
    软件工程中数据库设计
    PPP(点对点协议(Point to Point Protocol)
    关键路径法
    什么是鲁棒性测试
    何为蠕虫病毒
    临界区
  • 原文地址:https://www.cnblogs.com/exciting/p/10088396.html
Copyright © 2011-2022 走看看