您的位置:首页 > 理论基础 > 数据结构算法

图----数据结构图论总结(三)

2007-12-20 19:22 447 查看
图的存储表示:1.邻接矩阵,2.邻接表,3.有向图的十字链表,4.无向图的邻接多重表

1.邻接矩阵

#define FINITY 5000

#define m 20

typedef char vertextype;

typedef int edgetype;

typedef struct{

vertextype vexs[m];

edgetype edges[m][m];

int n,e;

}mgraph;

2.邻接表

#define m 20

typedef char datatype;

typedef struct node{

int adjvex;

struct node *next;

}edgenode;

typedef struct vnode{

datatype vertex;

edgenode *firstedge;

}vertexnode;

typedef struct{

vertexnode adjlist[m];

int n,e;

}adjgraph;

3.无向图的邻接多重表

#define m 20

typedef char vertextype;

struct edge{

BOOL mark;

int vertexi;

int vertexj;

struct edge *linki;

struct edge *linkj;

};

typedef struct vnode{

vertextype vertex;

struct edge *firstedge;

}*graph;

struct node head[m];

4.有向图的十字链表

#define m 20

typedef char vertextype;

typedef struct ArcBox{

int tailvex,headvex;

struct ArcBox *tlink,*hlink;

}ArcBox;

typedef struct VexNode{

vertextype data;

ArcBox *firstin,*firstout;

}VexNode;

typedef struct{

vexnode xlist[m];

int vexnum,arcnum;

}Graph;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: