图/网-邻接矩阵-有/无 向网
来源:互联网 发布:淘宝售后客服怎么样 编辑:程序博客网 时间:2024/04/28 15:41
#include <stdio.h>
#include <stdlib.h>
#define MAXVEX 20 //最大顶点个数
#define INFINITY 32768 //表示极大值
typedef int Vextype;
typedef struct {
int arcs [MAXVEX][INFINITY];//边/弧 信息
Vextype vex[MAXVEX];//顶点信息
int vexnum; //顶点数目
int arcnum; //边/弧 个数
}AdjMatrix;
void Create(); //输出邻接矩阵
void Print(); //创建图(有向和无向)邻接矩阵
void main () {
AdjMatrix *g = NULL;
g = (AdjMatrix *)malloc(sizeof(AdjMatrix));
Create(g);
Print(g);
}
void Create(AdjMatrix *g) {
int i, j, k, weight;
char vex1, vex2;
printf("请输入无向网中的顶点数:");
scanf("%d",&g->vexnum);
printf("请输入无向网中的边数:");
scanf("%d",&g->arcnum);
for (i = 1; i <= g->vexnum; i++) {
for (j = 1; j <= g->vexnum; j++) {
g->arcs[i][j] = INFINITY;//如果不是网,则赋值0
}
}
printf("请输入无向网中%d个顶点:\n",g->vexnum);
for (i = 1; i <= g->vexnum; i++) {
printf("No.%d个顶点:顶点",i);
scanf("%d",&g->vex[i]);
}
printf("请输入无向网中%d条边:\n",g->arcnum);
for (k = 0; k < g->arcnum; k++) {
printf("\nNo.%d条边:\n",k+1);
printf("\t<---> 顶点V:");
scanf("%d",&vex1);
printf("\t<---> 顶点V:");
scanf("%d",&vex2);
printf("\t<---> 权值: ");
scanf("%d",&weight);
g->arcs[vex1][vex2] = weight;//如果不是网,则赋值1
g->arcs[vex2][vex1] = weight;//如果是有向网,注释此句
}
}
void Print(AdjMatrix *g) {
int i, j;
for (i = 0; i <= g->vexnum; i++) {
printf("%c ",i+64);
}
printf("\n");
for (i = 1; i <= g->vexnum; i++) {
printf("%c ",i+64);
for (j = 1; j <= g->vexnum; j++) {
printf("%d\t",g->arcs[i][j]);
}
printf("\n");
}
#include <stdlib.h>
#define MAXVEX 20 //最大顶点个数
#define INFINITY 32768 //表示极大值
typedef int Vextype;
typedef struct {
int arcs [MAXVEX][INFINITY];//边/弧 信息
Vextype vex[MAXVEX];//顶点信息
int vexnum; //顶点数目
int arcnum; //边/弧 个数
}AdjMatrix;
void Create(); //输出邻接矩阵
void Print(); //创建图(有向和无向)邻接矩阵
void main () {
AdjMatrix *g = NULL;
g = (AdjMatrix *)malloc(sizeof(AdjMatrix));
Create(g);
Print(g);
}
void Create(AdjMatrix *g) {
int i, j, k, weight;
char vex1, vex2;
printf("请输入无向网中的顶点数:");
scanf("%d",&g->vexnum);
printf("请输入无向网中的边数:");
scanf("%d",&g->arcnum);
for (i = 1; i <= g->vexnum; i++) {
for (j = 1; j <= g->vexnum; j++) {
g->arcs[i][j] = INFINITY;//如果不是网,则赋值0
}
}
printf("请输入无向网中%d个顶点:\n",g->vexnum);
for (i = 1; i <= g->vexnum; i++) {
printf("No.%d个顶点:顶点",i);
scanf("%d",&g->vex[i]);
}
printf("请输入无向网中%d条边:\n",g->arcnum);
for (k = 0; k < g->arcnum; k++) {
printf("\nNo.%d条边:\n",k+1);
printf("\t<---> 顶点V:");
scanf("%d",&vex1);
printf("\t<---> 顶点V:");
scanf("%d",&vex2);
printf("\t<---> 权值: ");
scanf("%d",&weight);
g->arcs[vex1][vex2] = weight;//如果不是网,则赋值1
g->arcs[vex2][vex1] = weight;//如果是有向网,注释此句
}
}
void Print(AdjMatrix *g) {
int i, j;
for (i = 0; i <= g->vexnum; i++) {
printf("%c ",i+64);
}
printf("\n");
for (i = 1; i <= g->vexnum; i++) {
printf("%c ",i+64);
for (j = 1; j <= g->vexnum; j++) {
printf("%d\t",g->arcs[i][j]);
}
printf("\n");
}
}
0 0
- 图/网-邻接矩阵-有/无 向网
- 邻接矩阵(有向图,无向图实现的差异)
- 无向图有向图邻接矩阵表示法
- 有向图和无向图用邻接矩阵储存
- C++邻接矩阵实现有向图、无向图
- 由邻接矩阵画有向图、无向图
- 无向图邻接矩阵
- 邻接矩阵无向图
- 邻接矩阵--无向图
- 无向网图的邻接矩阵存储结构
- 用邻接矩阵创建无向网
- 邻接矩阵有向图
- 邻接矩阵--有向图
- 数据结构之用邻接矩阵实现赋值无向图,有向图,无向图
- 邻接矩阵(无向图)
- 无向图的邻接矩阵
- 邻接表-建立无向图、无向网、有向图、有向网
- 有向图、有向网、无向图、无向网
- 非阻塞同步算法与CAS(Compare and Swap)无锁算法
- Java容器类
- Qt5多线程
- 从实战项目学习Android(二)Textview的一行显示、背景拉伸
- MOVE和CTAS比较(续)
- 图/网-邻接矩阵-有/无 向网
- linux设备驱动中的阻塞与非阻塞(二)
- LOL本地皮肤更改方法详解-“龙瞎”为例
- 互斥锁与信号量
- 关于CPU编程—无锁编程
- $( document ).ready()
- angularJS学习之路(八)---ng-switch
- 毕业快半年了,今天正式开通博客!作为一个新的起点!!
- String与StringBuffer的区别