return 1;
}
}
(11)出队操作
dequeue(Queue *q)
{
int t;
if(q->front==q->rear)
{
printf("The queue is empty!\n");
return 0;
}
else
{
t=q->V[q->front];
q->front=(q->front+1)%M;
return t;
}
}
(12)广度遍历
void BESTraverse(Graph *g)
{
int i;
Queue *q=(Queue *)malloc(sizeof(Queue));
for(i=1;i<=g->vexnum;i++)
{
visited[i]=0;
}
initqueue(q);
for(i=1;i<=g->vexnum;i++)
{
if(!visited[i])
{
visited[i]=1;
visitvex(g,g->V[i]);
enqueue(q,g->V[i]);
while(!quempty(q))
{
int u,w;
u=dequeue(q);
for(w=firstadjvex(g,u);w>0;w=nextadjvex(g,u,w))