wrodrigounb Postado Maio 11, 2012 Denunciar Share Postado Maio 11, 2012 Essa é a base do programa, mas não compila por dizer que há erros em declarações.#include<stdio.h> struct tipopilha { char dado, dadonovo; struct tipopilha *prox, *phanoi; }; struct tipopilhageral { void *dado; char *origem, *destino, *auxiliar; int *n; struct tipopilhageral *prox, *pilha, *phanoi; }; struct reghanoi { char o; char d; char a; int k; struct reghanoi *paux1; }; void InicializaPilha(struct tipopilha **phanoi); void *EmpilhaHanoi(struct tipopilhageral *pilha, char origem, char destino, char auxiliar, int n); void *DesempilhaHanoi (struct tipopilhageral *pilha, char *origem, char *destino, char *auxiliar, int *n); void InserePilha(struct tipopilha **pilha, char dadonovo); char RetiraPilha(struct tipopilha **pilha); void Hanoi(char origem, char destino, char auxiliar, int n); int main() { InicializaPilha(&phanoi); phanoi = EmpilhaHanoi (struct tipopilhageral phanoi, origem, destino, auxiliar, n); while (!PilhaVazia (phanoi)) { phanoi = DesempilhaHanoi(phanoi, origem, &destino, &auxiliar, &n); if (n == 1) { printf ("movimento de %3c para %3c \n", origem, destino); } else { phanoi = EmpilhaHanoi (phanoi, auxiliar, destino, origem, n-1); phanoi = EmpilhaHanoi (phanoi, origem, destino, auxiliar, 1); phanoi = EmpilhaHanoi (phanoi, origem, auxiliar, destino, n-1); } } EmpilhaHanoi(&pilha, &origem, &destino, &auxiliar, &n); DesempilhaHanoi(pilha, origem, destino, auxiliar, n); return 0; } void InicializaPilha (struct tipopilha **pilha) { *pilha = NULL; return; } void Hanoi(char origem, char destino, char auxiliar, int n) { struct tipopilhageral *phanoi; struct reghanoi { char o; char d; char a; int k; }; } void *EmpilhaHanoi (struct tipopilhageral *pilha, char origem, char destino, char auxiliar, int n) { struct reghanoi *paux1; void *paux2; paux1 = malloc (sizeof (struct reghanoi)); paux1->o = origem; paux1->d = destino; paux1->a = auxiliar; paux1->k = n; paux2 = paux1; InserePilha(&pilha, paux2); return pilha; } void *DesempilhaHanoi (struct tipopilhageral *pilha, char *origem, char *destino, char *auxiliar, int *n) { struct reghanoi *paux1; void *paux2; paux2 = RetiraPilha(&pilha); paux1 = paux2; *origem = paux1->o; *destino = paux1->d; *auxiliar = paux1->a; *n = paux1->k; free (paux2); return pilha; } void InserePilha(struct tipopilha **pilha, char dadonovo) { struct tipopilha *p1; p1 = malloc (sizeof (struct tipopilha)); p1->dado = dadonovo; p1->prox = *pilha; *pilha = p1; return; } char RetiraPilha(struct tipopilha **pilha) { struct tipopilha *p1; char car; p1 = *pilha; *pilha = p1->prox; car = p1->dado; free (p1); return car; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
wrodrigounb
Essa é a base do programa, mas não compila por dizer que há erros em declarações.
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.