示例#1
0
int main()
{
        priority_queue *pq = NULL;
        int a = 55;
        int b = 48;
        int c = 1289;
        int d = 78;

        int r = 0;

        /* 48 is minimal priority queue size */
        pq = create_priority_queue( 48, &comparator );

        priority_queue_insert( pq, &a );
        priority_queue_insert( pq, &b );
        priority_queue_insert( pq, &c );
        priority_queue_insert( pq, &d );

        r = *(int *) priority_queue_poll( pq );

        printf("First is %d\n", r);

        r = *(int *) priority_queue_poll( pq );

        printf("Second is %d\n", r);

        free_priority_queue( &pq );

        return EXIT_SUCCESS;
}
示例#2
0
/*
TODO tentar diminuir o numero de passos
*/
int main(void) {

    int dimension=3;
    int **initial = mount_board("./initial_state.txt");
    if(initial == NULL) return -1;
    int **final = mount_board("./final_state.txt");
    if(final == NULL) return -1;

    heap_node *node = NULL;
    node_queue *queue = NULL;

    solve_puzzle(initial, final, &node, &queue, dimension);

    free_matrix(initial, dimension);
    free_matrix(final, dimension);
    free_priority_queue(search_root(node));
    free_queue(&queue);

    printf("ok\n");

    return 0;
}