/************************************************ * empilha * * objetivo: rotina para inserir na pilha * * entrada : pilha * * saida : pilha com registro inserido no topo* ************************************************/ void empilha( PILHA** p ) { //RESERVAR MEMORIA PILHA *nodo = (PILHA*) malloc(sizeof(PILHA)); //VERIFICAR SE ELE CONSEGUIU RESERVAR MEMORIA if(nodo != NULL){ //COLOCA A ENTRADA DE DADOS NA MEMORIA RESERVADA entrada_dados(nodo); //APONTA O PROX DO NOVO PARA O INICIO(OU PRIMEIRO) nodo->prox = *p; //DEPOIS APONTA O INICIO PARA O NOVO *p = nodo; printf("\n Dados incluidos com sucesso!"); }else{ printf("\n Nao ha memoria disponivel!"); } // }
/* *Função Main */ int main(int argc, char const *argv[]) { // declara uma Pilha arvore Pilha* arvore; //faz arvore receber a entrada do usuário arvore = entrada_dados(); // declara e atribui um valor para a variável que contará o número de passos int nivel=0; //Laço de repetição que controlá quando o algoritimo achou o resultado do{ //chama a função para criar uma arvore de possibilidades arvore = ramifica(arvore,&nivel); }while(arvore != NULL); //imprime o resultado para o usuário printf("Número de passos %d\n",nivel); //fim do programa return 0; }