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

📄 srcs.h

📁 这是数据结构的课程设计,关于教学计划编制的设计
💻 H
字号:
#include"ggt.h"
/*  图的邻接表存储的基本操作 */
 int LocateVex(ALGraph G,VertexType u)
{ /*若G中存在顶点u,则返回该顶点在图中位置;否则返回-1 */
   int i;
   for(i=0;i<G.vexnum;++i)
     if(strcmp(u,G.vertices[i].data)==0)
       return i;
   return -1;
}
Status CreateGraph(ALGraph *G)
 { /* 采用邻接表存储结构,构造没有相关信息的图G */
   int i,j,k;
   VertexType va,vb;
   ArcNode *p;
   
   printf("shu ru ke cheng shu: ");
   scanf("%d",&(*G).vexnum);
   printf("shu ru xian xiu guan xi shu: ");
   scanf("%d",&(*G).arcnum);
   printf("shu ru %d xue ke bian hao(3 ge zi fu):\n",(*G).vexnum);
   for(i=0;i<(*G).vexnum;++i) /* 构造顶点向量 */
   { scanf("%s",(*G).vertices[i].data);
     (*G).vertices[i].firstarc=NULL;
 }
   printf("shu ru%d ke cheng xue fen (1~10):\n",(*G).vexnum);
   for(i=0;i<(*G).vexnum;++i) /* 构造顶点向量 */
   {scanf("%d",&(*G).vertices[i].dkxf);
   }
   printf("xian xiu guan xi tou he wei(kong ge wei fen):\n");
   for(k=0;k<(*G).arcnum;++k) /* 构造表结点链表 */
   { scanf("%s%s",va,vb);
     i=LocateVex(*G,va); /* 弧尾 */
     j=LocateVex(*G,vb); /* 弧头 */
     p=(ArcNode*)malloc(sizeof(ArcNode));
     p->adjvex=j;
     p->info=NULL; /* 图 */
     p->nextarc=(*G).vertices[i].firstarc; /* 插在表头 */
     (*G).vertices[i].firstarc=p;
    }
   return OK;
 }
void Display(ALGraph G)
 { /* 输出图的邻接矩阵G */
   int i;
   ArcNode *p;
   printf("%d个顶点:\n",G.vexnum);
   for(i=0;i<G.vexnum;++i)
     printf("%s ",G.vertices[i].data);
   printf("\n%d条弧(边):\n",G.arcnum);
   for(i=0;i<G.vexnum;i++)
   {
     p=G.vertices[i].firstarc;
     while(p)
     {printf("%s→%s  ",G.vertices[i].data,G.vertices[p->adjvex].data);
      p=p->nextarc;
     }
     printf("\n");
   }
 }
void FindInDegree(ALGraph G,int indegree[])
 { /* 求顶点的入度,算法调用 */
   int i;
   ArcNode *p;
   for(i=0;i<G.vexnum;i++)
   indegree[i]=0; /* 赋初值 */
   for(i=0;i<G.vexnum;i++)
   {
     p=G.vertices[i].firstarc;
     while(p)
     { indegree[p->adjvex]++;
       p=p->nextarc;
     }
   }
 }

⌨️ 快捷键说明

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