纯C语言:检索与周游广度深度遍历源码分享

2020-01-06 12:42:46于丽
易采站长站为您分析检索与周游广度深度遍历源码,有需要的朋友可以参考一下      

 

复制代码
#include <stdio.h>
typedef  int  datatype;   /*假定线性表元素的类型为整型*/
#define  maxsize  1024    /*假定线性表的最大长度为1024*/
# define n 100            /* 图的顶点最大个数 */
typedef char VEXTYPE;  /* 顶点的数据类型 */
typedef float ADJTYPE;  /* 权值类型 */
typedef struct

 VEXTYPE vexs[n] ;  /* 顶点信息数组 */
    ADJTYPE arcs[n][n] ; /* 边权数组 */
    int num ;    /* 顶点的实际个数 */
}GRAPH;

 

/***********************1。置空图**********************/
void GraphInit(GRAPH  *L)
{
 L->num=0;
}

/***********************2。求结点数**********************/
int GraphVexs(GRAPH  *L)
{
 return(L->num);
}

/***********************3。创建图**********************/
void GraphCreate(GRAPH  *L)
{
 int i,j;
 GraphInit(L);
 printf("请输入顶点数目:");
 scanf("%d",&L->num);
 printf("请输入各顶点的信息(单个符号):");
 for(i=0;i<L->num;i++)
 {
  fflush(stdin);
  scanf("%c",&L->vexs[i]);
 }
 printf("请输入边权矩阵的信息:");
 for(i=0;i<L->num;i++)
 {
  for(j=0;j<L->num;j++)
  {
   scanf("%f",&L->arcs[i][j]);
  }
 }
 printf("图已经创建完毕!");
}

/***********************4。图的输出**********************/
void GraphOut(GRAPH  L)
{
  int i,j;
  printf("n图的顶点数目为:%d",L.num);
  printf("n图的各顶点的信息为:n");
  for(i=0;i<L.num;i++)
  printf("%c  ",L.vexs[i]);
  printf("n图的边权矩阵的信息为:n");
  for(i=0;i<L.num;i++)
  {
    for(j=0;j<L.num;j++)
    {
    printf("%6.2f ",L.arcs[i][j]);