⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 图.cpp

📁 这里面有很多经典的算法
💻 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 + -