邻接矩阵
//*******************邻接矩阵,无向图,对称的*********************************
typedef struct
{
int no;//顶点编号
char info;//顶点其他信息
}VertexType //顶点类型
typedef struct //图的定义
{
int edge[maxSize][maxSize];//二维矩阵
int n,e;//顶点数,边数
VertexType vex[maxSize] //存放结点信息
/*
思考:
邻接矩阵,首先是每个结点是一个单位,保存相关信息,比如入度出度,
不过好像不用,因为矩阵中会表示出来, 邻接矩阵了。
邻接矩阵的属性:结点数,边数,结点信息,矩阵(二维数组)
*/
} //Mgraph
邻接表
//*******************邻接表 链式 *********************************
typedef struct //边
{
int n;//该边指向的结点的编号
struct ArcNode *nexttarc;//指向下一条边的指针
int info;//一般为边的权值,这个可要可不要,根据题意
}ArcNode
typedef struct
{
char data;//顶点信息,与info类似
ArcNode *firstarc;//指向第一条边的指针
}VNode
typedef struct
{
VNode adjlist[maxSize];//邻接表
int n,e;
} Agraph
/*
总结:
邻接矩阵:是对称的,无向图,如果没有权值的话,一般默认有线为1,否则-1
邻接表:是链式的,有向图
边:
因为权值是边的属性,所以边也是属性,边是从一个点指向另一个
点,所以,下一个点也是边的属性,而这,就又变成了,边指向边,
下一条边的地址也是边的属性。
属性: 1.边本身信息(权值) 2.下一条边 3.这条边指向的结点
点:点是每条链的头,所以,存储的,就是点本身的信息和下一条边
属性:1.本身的信息 2.第一条边
图:点,点数,边
*/