📄 11.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 + -