📄 b.cpp
字号:
#include<stdio.h>
#include<stdlib.h>
#define MAXVEX 30
int visited[MAXVEX];
struct edgenode
{
int adjvex; //邻接点序号
char info; //邻接点信息
struct edgenode *next;
};
struct vexnode
{
char data; //结点信息
struct edgenode *link;
};
typedef struct vexnode adjlist[MAXVEX];
void travgraph(adjlist g,int n);
void main()
{
adjlist g;
int e,i,s,d,n;
struct edgenode *p,*q;
printf("输入结点数(n)和边数(e): ");
scanf("%d%d",&n,&e);
for(i=1;i<=n;i++)
{
getchar();
printf("第%d个结点信息:",i);
scanf("%c",&g[i].data);
g[i].link=NULL;
}
for(i=1;i<=e;i++)
{
printf("第%d条边的起点序号,终点序号:",i);
scanf("%d%d",&s,&d);
p=(struct edgenode*)malloc(sizeof(struct edgenode));
q=(struct edgenode*)malloc(sizeof(struct edgenode));
p->adjvex=d;
p->info=g[d].data;
q->adjvex=s;
q->info=g[s].data;
p->next=g[s].link; //p插入顶点s是邻接表中
g[s].link=p;
q->next=g[d].link; //q插入顶点d的邻接表中
g[d].link=q;
}
travgraph(g,n);
printf("\n");
}
//遍历邻接表表示的一个图
void travgraph(adjlist g,int n)
{
int i;
struct edgenode *p;
printf("\n建立的邻接表如下:\n");
for(i=1;i<=n;i++)
{
printf("[%d,%c]",i,g[i].data);
p=g[i].link;
while(p!=NULL)
{
printf("=>(%d,%c)",p->adjvex,p->info);
p=p->next;
}
printf("\n");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -