Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
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;
}