📄 图.cpp
字号:
// 图.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#define VEX_NUM 9//AOE网中顶点的数目
#define ARC_NUM 11//AOE网中弧的数目
typedef char Vextype;//顶点类型
#define Maxvex 100
struct Vertex
{
int num;
char data;
};
typedef struct graph
{
int n;
int e;
struct Vertex Vexs[Maxvex];
int edges[Maxvex][Maxvex];
}Adjmaxix;//邻接矩阵定义
struct ArccNode
{
int adjvex;
char info;
struct ArccNode *nextarc;
};
struct Vexnode
{
char data;
struct ArccNode *firstarc;
};
typedef struct Vexnode AdjList[Maxvex];//邻接表定义
typedef struct arcnode
{
int adjvex;
int dut;//权值
struct arcnode *nextarc;
}ArcNode;
typedef struct vnode
{
Vextype data;
int indegree;//入度
ArcNode *firstarc;
}VNode;
typedef VNode ALgraph[VEX_NUM];
void creat_ALgraph(ALgraph G)
{
int i,j,k,w;
ArcNode *p;
printf("请输入顶点信息:");
for(i=0;i<VEX_NUM;++i)
scanf("%c",&G[i].data);
printf("输入顶点的入度:\n");
for(i=0;i<VEX_NUM;i++)
scanf("%d",&G[i].indegree);
for(i=0;i<VEX_NUM;i++)
G[i].firstarc=NULL;
printf("输入弧及权值:\n");
for(k=0;k<ARC_NUM;k++)
{
scanf("%d,%d,%d",&i,&j,&w);
p=(ArcNode *)malloc(sizeof(ArcNode));
p->adjvex=j;
p->dut=w;
p->nextarc=G[i-1].firstarc;
G[i-1].firstarc=p;
}
}/*creat_ALgraph*/
void Print_ALgraph(ALgraph G)
{
int i;
ArcNode *p;
for(i=0;i<VEX_NUM;++i)
{
printf("%c %d",G[i].data,G[i].indegree);
p=G[i].firstarc;
while(p!=NULL)
{
printf("%3d %3d",p->adjvex,p->dut);
p=p->nextarc;
}
printf("\n");
}
}/*Print_ALgraph*/
int main(int argc, char* argv[])
{
ALgraph AG;
creat_ALgraph(AG);
printf("\n输出AOE网的邻接表:\n");
Print_ALgraph(AG);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -