构造邻接表

来源:互联网 发布:怎么代理淘宝网店步骤 编辑:程序博客网 时间:2024/05/16 13:42
//构造邻接表/*1.如果G为无向图,则所需存储空间为O(|V|+2|E|); 2.如果G为有向图,则所需存储空间为O(|V|+|E|); 3.因为在邻接表中,无向图的每条边出现了两次(无向图的每个结点与相连结点相互构成一条邻接边); 4.要求有向图某结点的出度,只需查看此结点的表内结点数目即可; 5.要求有向图某结点的入度,需要遍历整个邻接表; 6.邻接表的表示不唯一,因为在构造某个结点的链表时,与这个结点相连的结点在链表里可以随机排序。 */#include<stdio.h> #define MaxV 100//顶点 typedef struct VNode{    int data;    struct VNode *firstarc;     //指向连接顶点的第一个结点 }VNode,AdjList[MaxV];           //由于邻接表是顺序表和链表的结合,所以这里也定义了AdjList[MaxV]邻接表形式 //结点 typedef struct ArcNode{    int adjvex;                 //该结点的info     struct ArcNode *next;       //指向下一个结点 }ArcNode;   //图 typedef struct{    AdjList vertices;           //邻接表     int vexnum,arcnum;          //图的顶点(vexnum)和弧数(arcnum) }ALGraph;int main(){}
原创粉丝点击