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

📄 +̤=-+

📁 这个源程序是关于无向图的邻接表生成和显示的
💻
字号:
/*无向图的邻接表生成和显示*/
   #include <stdio.h>
   #define MAXVEX 30
   typedef char VertexType;
   struct edgenode
       {
  int adjvex;      /*邻接点序号*/
  VertexType data; /*邻接点信息*/
  struct edgenode *next;
       };
   struct vexnode
 {
    VertexType data;       /*结点信息*/
    struct edgenode *link; /*指向下一个边结点*/
 };
   typedef struct vexnode adjlist[MAXVEX];
   void creagraph(adjlist g,int *n)
   {
     int e,i,s,d;
     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.data);
       g.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->data=g[d].data;
       q->adjvex=s;
       q->data=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;
     }
   }
   void dispgraph(adjlist g,int n)
   {
     int i;
     struct edgenode *p;
     printf("图的邻接表表示如下:n");
     for (i=1;i<=n;i++)
     {
       printf("  [%d,%c]=>",i,g.data);
       p=g.link;
       while (p!=NULL)
       {
  printf("(%d,%c)→",p->adjvex,p->data);
  p=p->next;
       }
       printf("∧n");
     }
   }
   main()
   {
      adjlist g;
      int n;
      creagraph(g,&n);
      dispgraph(g,n);
   }

⌨️ 快捷键说明

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