2023.12.16

发布时间:2024年01月16日

邻接矩阵构造?

typedef struct 
{
    int  arcs[MaxVexNum][MaxVexNum];
    int  vexnum, arcnum;
} AMGraph;

其中,arc是一个二维数组,用于表示各个顶点之间的边的关系。vexnum表示图中顶点的数量,arcnum表示图中边的数量。

示例

AMGraph graph;
graph.vexnum = 5;
graph.arcnum = 7;

// 初始化邻接矩阵
for (int i = 0; i < graph.vexnum; i++) {
    for (int j = 0; j < graph.vexnum; j++) {
        graph.arcs[i][j] = 0;
    }
}

// 添加边的关系
graph.arcs[0][1] = 1;
graph.arcs[1][0] = 1;
graph.arcs[0][2] = 1;
graph.arcs[2][0] = 1;
graph.arcs[1][2] = 1;
graph.arcs[2][1] = 1;
graph.arcs[3][4] = 1;
graph. Arcs[4][3] = 1;

找节点,然后就可以区分出左右子树,就可以找到左右子树的高度范围

对于指定的N个节点有两个策略,一个是满着排,一个是连成链表型

如果满着排,那么高度就是取对数,如果成链表型高度就是n

初始为有序序列,就是一条左子树链,高度为n

折半就是取当下序列中间元素为根,然后高度变为n/2

如果高度比k小,

文章来源:https://blog.csdn.net/m0_73553411/article/details/135031856
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。