void BFS(int matrix[][N], int v, int visited[]) { int u; linkqueue *lq; lq = CreateEmptyLinkqueue(); printf("V%d ", v); visited[v] = 1; EnLinkqueue(lq, v); while ( ! EmptyLinkqueue(lq) ) { v = DeLinkqueue(lq); u = FirstAdj(matrix, v); while (u >= 0) { if ( ! visited[u] ) { printf("V%d ", u); visited[u] = 1; EnLinkqueue(lq, u); } u = NextAdj(matrix, v, u); } } return; }
void NoOrder(bitree_t *root) { linkqueue_t *lq; /* create queue */ lq = CreateEmptyLinkqueue(); /* root node enters queue */ EnQueue(lq, root); while (!EmptyLinkqueue(lq)) { DeQueue(lq, (data_t *)(&root)); printf("%c ", root->data); if (root->lchild != NULL) { EnQueue(lq, root->lchild); } if (root->rchild != NULL) { EnQueue(lq, root->rchild); } } return; }