void inserirPorID (Lista * lst, QuadroPagina* item, int posicao) { No * no = lst->prim; No * novoNo = criaNo(item); if (posicao > lst->tam) { printf("Indice de lista não existente. \n"); exit(0); } if (posicao == 0) { inserirPrimeiro(lst, item); return; } else { if(lst->tam == posicao) { inserirUltimo(lst, item); return; } while (posicao>0) { no = no->prox; posicao--; } inserirAntes(lst, no, novoNo); lst->tam++; } }
/* Programa principal */ int main(){ Lista* minhaLista; minhaLista = criaLista(); printf("Antes da inserção\n"); detalharLista(minhaLista); inserirPrimeiro(minhaLista, 10); inserirPrimeiro(minhaLista, 20); inserirPrimeiro(minhaLista, 30); inserirN(minhaLista, 22, 1); printf("\nDepois da inserção\n"); detalharLista(minhaLista); printf("\nRemovendo valor 20 ...\n"); buscarRemover(minhaLista, 20); printf("Depois da remoção de 20\n"); detalharLista(minhaLista); printf("\nRemovendo valor 10 ...\n"); buscarRemover(minhaLista, 10); printf("Depois da remoção de 10\n"); detalharLista(minhaLista); printf("\nRemovendo valor 30 ...\n"); buscarRemover(minhaLista, 30); printf("Depois da remoção de 30\n"); detalharLista(minhaLista); printf("\nRemovendo valor 22 ...\n"); buscarRemover(minhaLista, 22); printf("Depois da remoção de 22\n"); detalharLista(minhaLista); return 1; }