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

📄 图的邻接表.txt

📁 数据结构课堂实验 集中了数据结构,线性表,连表,栈,队列,二叉树,图,排序算法,查找算法的实现
💻 TXT
字号:
#include "stdio.h"
#include "alloc.h"
#define max 20
#define Null 0
struct arcnode
{  int adjvex;
  struct arcnode *nextarc;
};
struct vexelem
{ char data;
  struct arcnode *firstarc;
};

typedef struct
{ struct vexelem vex[max];
  int vexnum,arcnum;
  int kind;
  } adjlist;
int locate(adjlist &G, char v1)
{ int i;
  for (i=0;i<G.vexnum;i++)
   if(G.vex[i].data==v1) return i;
  printf("not find");
  return -1;
}

void creatdg(adjlist &G)/*有向图的创建*/
{ int i,jv1,jv2;
  char v1,v2,ch;
  struct arcnode *s;
  G.kind=1;
  printf("input the num of vertex:");
  scanf("%d",&(G.vexnum));
  printf("input the num of arcs:");
  scanf("%d",&(G.arcnum));
  for(i=0;i<G.vexnum;i++)
   { getchar();
     printf("input %dth vertex:",i+1);
     scanf("%c",&(G.vex[i].data));
     G.vex[i].firstarc=Null;
     }
  for(i=0;i<G.arcnum;i++)
   { getchar();
     printf("input %dth edge,FORMAT:(A,B)\n",i+1);
     scanf("%c%c%c",&v1,&ch,&v2);
     jv1=locate(G,v1);jv2=locate(G,v2);
     if(jv1<0 ||jv2<0) {printf("error!!!!!");}
     s=(struct arcnode *)malloc(sizeof(struct arcnode));
     s->adjvex=jv2;
     s->nextarc=G.vex[jv1].firstarc;
     G.vex[jv1].firstarc=s;
    }
  }
void  output(adjlist G)/*邻接表的输出*/
{ int i;
  struct arcnode *s;
  for(i=0;i<G.vexnum;i++)
  {printf("%c: ",G.vex[i].data);
   s=G.vex[i].firstarc;
   while(s)
   {printf("--->%4d",s->adjvex);
    s=s->nextarc;
    }
    printf("\n");
    }
 }
/*其余操作略*/
main()
{  adjlist G;
   creatdg(G);
   output(G);
 }

⌨️ 快捷键说明

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