?? 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 + -