int main() { LISTA_ENCADEADA minha_lista; minha_lista.cont = 0; minha_lista.primeiro = NULL; minha_lista.ultimo = NULL; // Uma maneira de se fazer: instancie diretamente a struct e passe seu endereco ELEMENTO aluno1; aluno1.DRE = 111; aluno1.CRA = 8.5; strcpy(aluno1.nome, "Aluno1"); inserir(&minha_lista, &aluno1, NULL); // Outra maneira: crie o ponteiro e aloque memória para ele, // passando depois o proprio ponteiro ELEMENTO* aluno2_ptr; aluno2_ptr = (ELEMENTO*) malloc(sizeof(ELEMENTO)); aluno2_ptr->DRE = 222; aluno2_ptr->CRA = 6; strcpy(aluno2_ptr->nome, "Aluno2"); inserir(&minha_lista, aluno2_ptr, &aluno1); print_lista(&minha_lista); printf("\n"); return 1; }
void print_dir(PNO * p_ini, char *path, int ini, int *pos, int fim) { print_tudo(path, ini, fim); print_atributo(ini, fim, 0, 80, 1, 1); print_lista((*p_ini), ini, fim); print_atributo((*pos), (*pos) + 1, 0, 80, 0, 0); }
void funcao_up(PNO * p_ini, PNO * p_pos, PNO * p_fim, int ini, int *pos, int fim) { if ((*p_pos)->ant != (*p_ini)->ant) { print_atributo((*pos), (*pos) + 1, 0, 80, 1, 0); (*pos)--; (*p_pos) = (*p_pos)->ant; print_atributo((*pos), (*pos) + 1, 0, 80, 0, 0); } else if ((*p_ini)->ant) { (*p_ini) = (*p_ini)->ant; (*p_pos) = (*p_pos)->ant; (*p_fim) = (*p_fim)->ant; print_atributo(ini, fim, 0, 80, 1, 1); print_lista((*p_ini), ini, fim); print_atributo((*pos), (*pos) + 1, 0, 80, 0, 0); } }
void funcao_pgup(PNO * p_ini, PNO * p_pos, PNO * p_fim, int ini, int *pos, int fim) { PNO aux = (*p_ini); if (dec_tela(&aux, ini, fim - 1)) { (*p_fim) = (*p_ini); dec_tela(&(*p_pos), ini, fim - 1); dec_tela(&(*p_ini), ini, fim - 1); } else { (*p_ini) = aux; (*p_fim) = aux; inc_tela(&(*p_fim), ini, fim - 1); (*p_pos) = (*p_ini); inc_tela(&(*p_pos), ini, (*pos)); } print_atributo(ini, fim, 0, 80, 1, 1); print_lista((*p_ini), ini, fim); print_atributo(*(pos), (*pos) + 1, 0, 80, 0, 0); }
void funcao_down(PNO *p_ini, // ponteiro p/ inicio da tela PNO *p_pos, // ponteiro p/ posicao do cursor PNO *p_fim, // ponteiro p/ fim da tela int ini, // inicio da tela int *pos, // posicao do cursor na tela int fim) // fim da tela { if ((*p_pos)->prox != (*p_fim)->prox) { print_atributo(*pos, *pos + 1, 0, 80, 1, 0); (*pos)++; (*p_pos) = (*p_pos)->prox; print_atributo((*pos), (*pos) + 1, 0, 80, 0, 0); } else if ((*p_fim)->prox) { (*p_ini) = (*p_ini)->prox; (*p_pos) = (*p_pos)->prox; (*p_fim) = (*p_fim)->prox; print_atributo(ini, fim, 0, 80, 1, 1); print_lista((*p_ini), ini, fim); print_atributo((*pos), (*pos) + 1, 0, 80, 0, 0); } }