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

📄 11.c

📁 建立有向图邻接表 潘一帆制作 数据结构小作业
💻 C
字号:
#include<stdio.h>
#include<stdlib.h>
#define M 20
typedef struct node
{
	int adj;        /*顶点域*/
	struct node*next;   /*链域*/
}JD;
typedef struct tnode
{
	char data;          /*数据域*/
	struct node *fedge;    /*链域指向链表中第一个结点*/
}TD;
void CreateAdjList(TD g[],int m,int n);
/**************************************/
void main()
{
	int i,m,n;
	TD g[M];
	JD*r;
	printf("输入有向图的顶点数:");
	scanf("%d",&m);
	printf("输入有向图的有向边数:");
	scanf("%d",&n);
	CreateAdjList(g,m,n);  /*建立有向图邻接表*/
	/**********************/
    for(i=1;i<=m;i++)       /*输出有向图邻接表*/
	{
		printf("%c",g[i].data);
		r=g[i].fedge;	
		while(r!=NULL)
		{
			printf(" %d",r->adj);
			r=r->next;
		}
		printf("\n");
	}
}
void CreateAdjList(TD g[],int m,int n)
{
	JD*s;
	int a,b,i;
	printf("请输入各顶点的数据域:");
	for(i=1;i<=m;i++)
	{	
		getchar();/*吸收空字符*/
		g[i].data=getchar();
		g[i].fedge=NULL;
	}
	printf("请输入各条边:(a,b)\n");
	for(i=0;i<n;i++)
	{
		scanf("%d,%d",&a,&b);
		s=(JD*)malloc(sizeof(JD));
		s->adj=b;
		s->next=g[a].fedge;//粗心写成了s->next=g[i].fedge;
		g[a].fedge=s;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -