Example #1
0
/**verifica a necessidade de GC**/
int Verifica(int qtd, pilha *p, No **Raiz)
{
    int ref = 1;
    if(indice < (TAM_HEAP/2)) //caso o grafo esteja no heap 1
    {
        if(indice + qtd >= (TAM_HEAP/2)) //se nao houver espaço pra os novos nós
        {
            limpaPilha(p);
            Fenichel_Yochelson(Raiz, p);
            ref = 0; //avisa q precisou de GC
        }
    }
    else //caso o grafo esteja do heap 2
    {
        if(indice + qtd > TAM_HEAP) //se nao houver espaço pra os novos nós
        {
            limpaPilha(p);
            Fenichel_Yochelson(Raiz, p);
            ref = 0;
        }
    }
    return ref;
}
Example #2
0
void escolhe(int resposta, node* Pilha)
{
    switch(resposta)
    {
        case 0:
            limpaPilha(Pilha);
            break;
        case 1:
            exibePilha(Pilha);
            break;
        case 2:
            insereItem(Pilha);
            break;
        case 3:
            removeItem(Pilha);
            break;
        case 4:
            criaPilha(Pilha);
            break;
        default:
            puts("\nOpção inválida! Verifique novamente as opções apresentadas.");
    }

}