首页 > 编程知识 正文

数据结构哈夫曼树编码,数据结构邻接矩阵怎么算的

时间:2023-05-03 20:42:04 阅读:163912 作者:4594

图的邻接矩阵(AdjacencyMatrix )的存储方式用两个数组表示图。 一维数组存储图的顶点信息,而二维数组(称为邻接矩阵)存储图的边或圆弧信息。

图矩阵的创建:

首先思考图的结构利用矩阵

1.输入顶点数总边数

2.依次输入点的信息

3.初始化邻接矩阵使得每个权值都初始化为无穷大

4. 构造邻接矩阵。依次输入每条边依附的顶点和其权值。利用无向矩阵对称。即对称边赋相同的值

请输入voidcreateamgraph(amgraphg ) {printf )顶点和边的数量。 ((之间请用逗号隔开(n ) ); scanf('%d,%d ',G.vexnum,G.arcnum ); //输入顶点数的边数getchar (; printf ('请输入顶点。 n ); for(intI=0; iG.vexnum; I ) scanf('%c ',G.Vexs[i]; //为每个顶点输入getchar (); }for(intI=0; iG.vexnum; I ) for(intj=0; jG.vexnum; j ) {G.arcs[i][j]=Max; //使各边最初无限大) }for(intk=0; kG.arcnum; k () {int v1,v2,w; //定义起点、终点,对应边的权重printf(2 (输入两个顶点,然后输入边的权重) (对应的下标) (用逗号分隔(n ) ) ) ) ) ) ) ) ) ) getchar (; G.arcs[v1][v2]=w; //连接起点终点和两点的边的权重G.arcs[v2][v1]=G.arcs[v1][v2]; //因为有向图具有对称性(3358www.Sina.com/

voidtrverseamgraph(amgraphg )//矩阵遍历for ) intI=0; iG.vexnum; I ) for(intj=0; jG.vexnum; j () if ) g.Arcs[I][j]!=Max () printf('%dt ',G.arcs[i][j] ); }elseprintf(0(t ); }printf((n ); }整体代码:

# include stdio.h # include stdlib.h # definem vnum 100 # definemax 32722 typedefintarctype; //将边缘权重类型定义为整形typedef char VertexType; //将顶点类型转换为字符类型typedef struct { vertextypevexs [ mv num ]; //数组ArcType arcs[Mvnum][Mvnum]; //边权重int vexnum,arcnum; //当前顶点数、边数}AMGraph; 请输入voidcreateamgraph(amgraphg ) {printf )顶点和边的数量。 ((之间请用逗号隔开(n ) ); scanf('%d,%d ',G.vexnum,G.arcnum ); //输入顶点数的边数getchar (; printf ('请输入顶点。 n ); for(intI=0; iG.vexnum; I ) scanf('%c ',G.Vexs[i]; //为每个顶点输入getchar (); }for(intI=0; iG.vexnum; I ) for(intj=0; jG.vexnum; j ) {G.arcs[i][j]=Max; //使各边最初无限大) }for(intk=0; kG.arcnum; k () {int v1,v2,w; //定义起点、终点,对应边的权重printf(2 (输入两个顶点,然后输入该边的权重(对应的下标(n ) ) ) ) ) ) ) ) ) ) ) ) )的SSD getchar (; G.arcs[v1][v2]=w; //连接起点终点和两点的边的权重G.arcs[v2][v1]=G.arcs[v1][v2]; //因为有向图具有对称性}}voidtrverseamgraph(amgraphg )//矩阵遍历for(intI=0; iG.vexnum; I ) for(intj=0; jG.vexnum; j () if ) g.Arcs[I][j]!=Max () printf('%dt ',G.arcs[i][j] ); }elseprintf(0(t ); }printf((n ); }}int main () {AMGraph G; createamgraph(g ); trverseamgraph(g ); 返回0; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。