毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

图的遍历的演示

更新时间:2007-10-20:  来源:毕业论文
C语言数据结构课程设计题-图的遍历的演示|数据结构课程设计

#define M 20
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
/*定义图*/
typedef struct{
  int V[M];
  int R[M][M];
  int vexnum;
}Graph;

/*创建图*/
void creatgraph(Graph *g,int n)
{
  int i,j,r1,r2;
  g->vexnum=n;
  /*顶点用i表示*/
  for(i=1;i<=n;i++)
  {
    g->V[i]=i;
  }
  /*初始化R*/
  for(i=1;i<=n;i++)
   for(j=1;j<=n;j++)
    {
      g->R[i][j]=0;
    }
  /*输入R*/
  printf("Please input R(0,0 END):\n");
  scanf("%d,%d",&r1,&r2);
  while(r1!=0&&r2!=0)
   {
    g->R[r1][r2]=1;
    g->R[r2][r1]=1;
    scanf("%d,%d",&r1,&r2);
   }
}

/*打印图的邻接矩阵*/
void printgraph(Graph *g)
{
int i,j;
for(i=1;i<=g->vexnum;i++)
{ for(j=1;j<=g->vexnum;j++)
   {
     printf("%2d ",g->R[i][j]);
   }
   printf("\n");
   }
}
/*全局变量:访问标志数组*/
int visited[M];
/*访问顶点*/
void visitvex(Graph *g,int vex)
{
printf("%d ",g->V[vex]);
}

/*获取第一个未被访问的邻接节点*/
int firstad