在头文件ljb.h中,更改头结点类型VertexNode(原头结点类型定义如下示),增加一个id数据域,用于标记结点的入度;编写一个函数void inDegree(LinkedGraph *g),用于
计算图g中每个顶点的入度。
在头文件ljb.h中,更改头结点VertexNode的定义:
struct VertexNode {
int id; //新增id数据域,用于标记结点的入度
int data; //顶点信息
EdgeNode *firstEdge; //边表头指针
};
然后再实现一个函数void inDegree(LinkedGraph *g),用于计算图g中每个顶点的入度:
void inDegree(LinkedGraph *g) {
if (g == NULL || g->vexNum == 0) {
return ;
}
int i, j, k;
for (i = 0; i < g->vexNum; ++i) { //遍历所有的顶点
for (k = 0, j = 0; j < g->vexNum; ++j) { //遍历所有的边表来寻找以该顶点开始的节点数量
EdgeNode *e = g->vertices[j].firstEdge; //取出该顶点对应的边表头
while (e != NULL && e->ivex != i) { //如果不是以该顶
AI智能问答网
免责声明:
本内容由AI模型3.0生成,可能存在逻辑不清、乱码等问题,点这里>>使用AI高级版(AI-4.0),更聪明、更完整、无乱码!
以上内容除特别注明外均来源于网友提问、AI回答,权益归原著者所有,本站仅作效果演示和欣赏之用;