Ejemplo n.º 1
0
int
add_station ( Arr * networks, char * net, char * sta, Arr * sinfo )
{
    Arr * stations;
    Arr * sold;
    char * latency;

    if ( networks == NULL )
        networks = newarr( strcmp );

    if ( sold = get_station( networks, net, sta ) )
    {
        sinfo_update( sold, sinfo );
        clrarr( sinfo, pffree );
    }
    else
    {
        if ( get_stations( networks, net ) == NULL ) 
            add_network( networks, net );

        if ( !(stations = get_stations( networks, net ) ) ) return 0;
        setarr( stations, sta, create_pf( sinfo, PFARR ) );
    }

    return 1;
}
Ejemplo n.º 2
0
/* Recursively traverses a Pf object and frees its nested pf-consistent
 * members. */
void recurse_free_pf ( Pf * pf )
{
    Arr * currarr;
    Tbl * currtbl;
    void * key;
    void * value;
    int i;
    int size;


    if ( pf == NULL ) return;

    switch ( pf->type )
    {
        case PFARR:     clrarr( pf->value.arr, recurse_free_pf );
                        break;

        case PFTBL:     clrtbl( pf->value.tbl, recurse_free_pf );
                        break;

        default:        free( pf->value.s );
                        break;
    }

    pffree( pf );
    pf = NULL;
}
Ejemplo n.º 3
0
Archivo: q42.c Proyecto: peter0749/TOJ
int main(void)
{
    int term, w, h;
    int count;
    int i, j;
    char temp[1100];
    gets(temp);
    term = atoi(temp);
    while(term--)
    {
        count = 0;
        clrarr(-1);
        gets(temp);
        sscanf(temp,"%d %d",&h, &w);
        //printf("%d %d\n",h,w);
        for(i=0; i<h; i++)
        {
            gets(temp);
            for(j=0; j<w; j++)
            {
                if(temp[j]=='.')
                    map[i+1][j+1] = 0;
            }
        }
        //prtout(h,w);
        /*End of input*/
        for(i=1;i<=h;i++)
        {
            for(j=1;j<=w;j++)
            {
                if(map[i][j]==0)
                {
                    count++;
                    des(i,j);
                }
            }
        }
        //prtout(h,w);
        printf("%d\n",count);

    }
    return 0;
}