aiaiask.com©

开花即结果 提问即答案

如何使用c语言编写一个程序输出以邻接表为存储结构的无向图的各顶点的度
原始问题:

如何使用c语言编写一个程序输出以邻接表为存储结构的无向图的各顶点的度

要使用C语言编写一个程序输出以邻接表为存储结构的无向图的各顶点的度,首先需要定义一个结构体表示图的顶点,然后创建一个数组存储图的顶点。接着,遍历邻接表,计算每个顶点的度。最后,输出各顶点的度。

以下是具体的代码实现:

#include <stdio.h>
#include <stdlib.h>

// 定义顶点结构体
typedef struct Vertex {
    int data; // 顶点数据
    struct Vertex *next; // 指向下一个顶点的指针
} Vertex;

// 计算顶点的度
int degree(Vertex *vertex) {
    int count = 0;
    Vertex *temp = vertex->next;
    while (temp != NULL) {
        count++;
        temp = temp->next;
    }
    return count;
}

int main() {
    // 创建图的顶点数组
    Vertex vertices[5];

    // 初始化顶点数据和邻接表
    vertices[0].data = 0;
    vertices[0].next = &vertices[1];
    vertices[1].data = 1;
    vertices[1].next = &vertices[2];
    vertices[2].data = 2;
    vertices[2].next = &vertices[3];
    vertices[3].data = 3;
    vertices[3].next = &vertices[4];
    vertices[4].data = 4;
    vertices[4].next = NULL;

    // 输出各顶点的度
    for (int i = 0; i < 5; i++) {
        printf("顶点%d的度为:%d
", vertices[i].data, degree(&vertices[i]));
    }

    return 0;
}

这个程序首先定义了一个表示顶点的结构体Vertex,包含一个整数类型的数据成员data和一个指向下一个顶点的指针next。然后定义了一个计算顶点度的函数degree,通过遍历邻接表来计算顶点的度。在main函数中,创建了一个顶点数组vertices,并初始化了顶点数据和邻接表。最后,遍历顶点数组,输出各顶点的度。

如何使用c语言编写一个程序输出以邻接表为存储结构的无向图的各顶点的度
https://www.aiaiask.com/ask/86901.html
AI / 模型DeepSeek
时间 / DATEMay 20, 2024, 6:04 PM
语言zh-CN
IP / 区域江西 南昌