阅读以下说明,回答问题1~5,将解答填入对应的解答栏内。 [说明] 编写一个函数根据用户输入的偶对(以输入。表示结束)建立其有向图的邻接表。一个图的邻接表存储结构定义如下: # include < stdio. h > # define MAX

admin2009-02-15  27

问题 阅读以下说明,回答问题1~5,将解答填入对应的解答栏内。
[说明] 编写一个函数根据用户输入的偶对(以输入。表示结束)建立其有向图的邻接表。一个图的邻接表存储结构定义如下:
   # include < stdio. h >
   # define MAXVEX 30
   struct edgenode
   {
        int adjvex;
        char info;
        struct edgenode * next;
   }
   struct vexnode
   {
        char data;
        struct edgenode * link;
   }
   typedef struct vexnode adjlist [MAXVEX];
   实现要求的函数如下:
   void creatadjlist ( adjlist g)
   {
        int i, j, k;
        street vexnode * s;
        for( k=1; k< =n; k+ +)
        {
           (1)   
          g [k]. link = NULL;
        }
        printf ( “输一个对:” );
        scanf ("%d, %d", &i, &j);
       while  (2)  
       {
         (3)  
            s- >adjvex =j;
         (4)  
            g .link =s;
         (5)  
       }
   }

选项

答案(1) g[k].data=k; (2) i! =0 &&j! =0 (3) s =(struct vexnode * ) malloc( sizeof( vex-node) ); (4) s- >next = g[i].link; (5) printf(“输入一个偶对:”); scanf("%d, %d", &i, &j);

解析 本题的算法思想是:先产生邻接表的n个头结点(其结点数值域从1到n),然后接收用户输入的 (以其中之一为0结束标志),对于每条这样的边,申请一个邻接结点,并插入到vi的单链表中,如此反复,直到将图中所有边处理完毕,则建立了该有向图的邻接表。
转载请注明原文地址:https://kaotiyun.com/show/xgDZ777K
0

相关试题推荐
最新回复(0)