用c语言
时间: 2024-02-12 12:06:40 浏览: 12
好的,以下是使用 C 语言实现求邻接表中某个点的入度的代码:
```c
// 定义邻接表中的边结构体
typedef struct ArcNode {
int adjvex; // 该边的邻接点编号
struct ArcNode *next; // 指向下一条边的指针
} ArcNode;
// 定义邻接表中的顶点结构体
typedef struct VNode {
int data; // 顶点信息
ArcNode *first; // 指向第一条依附该顶点的边的指针
} VNode, AdjList[MAXV];
// 定义邻接表结构体
typedef struct {
AdjList vertices; // 邻接表
int vexnum, arcnum; // 图的顶点数和边数
} ALGraph;
// 求某点v的入度
int InDegree(ALGraph *G, int v) {
int i, count = 0;
ArcNode *p;
// 遍历邻接表,统计所有邻接点为v的边的数目
for (i = 0; i < G->vexnum; i++) {
p = G->vertices[i].first;
while (p != NULL) {
if (p->adjvex == v) {
count++;
}
p = p->next;
}
}
return count;
}
```
这段代码与 C++ 版本的实现基本相同,只是在函数定义时去掉了返回类型前的 `int` 关键字。其他部分的逻辑都是一样的。