/**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; }
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."); } }