nkqueue Q;Р?setnull(&Q);Р?printf("%c",gl[k].topvex);Р?visited_ljb[k]=1;Р?enqueue(&Q,k);Р?while(!empty(&Q))Р?{Р i=dequeue(&Q);Р p=gl[i].link;Р while(p!=NULL)Р {Р if(!visited_ljb[p->adjvex])Р {Р printf("%c",gl[p->adjvex].topvex);Р visited_ljb[p->adjvex]=1;Р enqueue(&Q,p->adjvex);Р }Р p=p->next;Р }Р?}Р}Р第五章源代码Р程序图的存储与遍历Р#include<stdio.h>Р#include<stdlib.h>Рtypedef int datatype; //datatype可为任何类型,这里假设为intРtypedef char vextype; //顶点的数据类型,vextype可为任何类型,这里假设为charРtypedef struct pnodeР{Р datatype data; //定义链表的数据域Рstruct pnode *next; //定义链表的指针域Р}linklist;Рtypedef structР {Р linklist *front,*rear; //用linklist类型定义队头和队尾Р }linkqueue;Рlinkqueue *q; //q是链队列指针Рypedef struct nodeР{Р int adjvex; //邻接点域Р truct node *next; //链域Р}edgenode; //边表结点Рtypedef structР{Р vextype topvex; //顶点信息Р edgenode *link; //边表头指针