以邻接表方式存储的有向图G。
图的邻接表存储结构的类型定义如下:
#define UNVISITED0
#define VISITED1
#defineINFINITY MAXINT//计算机允许的整数最大值,即∞
typedef char VexType;
typedef enum {DG,DN,UDG,UDN} GraphKind; // 有向图,有向网,无向图,无向网
typedef struct AdjVexNode {
intadjvex;//邻接顶点在顶点数组中的位序
structAdjVexNode*next;//指向下一个邻接顶点(下一条边或弧)
intinfo;//存储边(弧)相关信息,对于非带权图可不用
} AdjVexNode,*AdjVexNodeP;//邻接链表的结点类型
typedef struct VexNode {
VexType data;//顶点值,VexType是顶点类型,由用户定义
struct AdjVexNode *firstArc;//邻接链表的头指针
} VexNode;//顶点数组的元素类型
typedef struct {
VexNode *vexs;//顶点数组,用于存储顶点信息
int n, e;//顶点数和边(弧)数
GraphKind kind; // 图的类型
int *tags;//标志数组
}ALGraph;//邻接表类型
int f2(ALGraph G, int k)
{intodeg; odeg=0;
AdjVexNodeP p;
if(k<0 ||k>=G.n) return -1;
p = G.vexs[k].firstArc;
while(p!=NULL) {
p = p->next;odeg++;
}
return odeg;
}
查看答案和解析【26考研辅导课程推荐】:26考研集训课程,VIP领学计划,26考研VIP全科定制套餐(公共课VIP+专业课1对1) , 这些课程中都会配有内部讲义以及辅导书和资料,同时会有教研教辅双师模式对大家进行教学以及督学,并配有24小时答疑和模拟测试等,可直接咨询在线客服老师领取大额优惠券。
启航教育热门私房课
MORE小班面授 名额有限 抢先体验
编辑推荐
最新内容
姓名
手机号