Ois,
A seguir está uma função que usa uma pilha. Alguém pode me dizer como a pilha esta implementada? Vetor? Lista encadeada duplamente encadeada com cabeça? Lista encadeada sem cabeça? Todas as anteriores?
double eval(char *posf) { Stack s = stackInit(strlen(posf)); double resultado; for ( ; *posf ; posf++) { if (*posf == ' ') continue; if ('a' <= *posf && *posf <= 'z') { stackPush(s, getValor(*posf)); } else { double valor1 = stackPop(s); double valor2 = stackPop(s); if (*posf == '+') { stackPush(valor1 + valor2); } else if (*posf == '-') { stackPush(valor1 - valor2); } else if (*posf == '*') { stackPush(valor1 * valor2); } else if (*posf == '/') { stackPush(valor1 / valor2); } } } resultado = stackPop(s); stackFree(s); return resultado; }