Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //eliminar cada segundo elemento de uma lista letra k
- void removesegundoElemento(listadup*inicio)
- {
- listadup aux1,aux2,aux3,aux;
- int j;
- if(*inicio==NULL)//se o inicio for null
- {
- puts("lista vazia");
- getch();
- }
- else
- {
- aux=*inicio;//declara o auxilixar
- while(aux!=NULL)//a cada vez que o while roda o contador conta +1
- {
- aux=aux->prox;
- j++;
- }
- if(j>=2)//if pois se a lista tiver sรณ 1 elemento nao tem como remover o segundo elemento
- {
- //atualizando a lista
- aux1=*inicio;
- aux2=aux1->prox;
- aux3=aux2->prox;
- free(aux2);
- aux1->prox=aux3;
- }
- else
- {
- puts("A lista nao tem segundo elemento");
- getch();
- }
- }
- }
- //LETRA D INVERTE LISTA
- void inverteLista(listadup*inicio,listadup*fim,listadup*inicio2,listadup*fim2)
- {
- listadup aux,aux1;
- if(*inicio==NULL)
- {
- puts("Lista vazia");
- getch();
- }
- else
- //1-2-3-4 4-3-2-1
- {
- //eu fiz uma lista 2 como auxiliar,passando os noh para ela invertidos,depois devolvendo a lista original
- *inicio2=*fim;//inicio 2 recebe o fim da lista 1
- aux=*inicio2;//aux recebe o inicio 2
- aux1=*fim;//aux 1 recebe o fim
- while(aux1!=NULL)//enquanto o aux1 nao for null
- {
- aux->prox=aux1->ant;//faz o inicio2 receber um noh do fim1
- aux=aux->prox;//passar os auxiliar do inicio 2 para o proximo
- aux1=aux1->ant;//passa o auxiliar do fim para o ant
- }
- *inicio=*inicio2;//faz a lista original receber a lista invertida
- }
- }
- //Letra f,eliminir o enesimo termo da lista
- void eliminarEnesimo(int y,listadup*inicio,listadup*fim)
- {
- int j=0;
- listadup aux,aux1,aux2,aux3,aux4,aux5,aux6;
- if(*inicio==NULL)//se inicio for vazio
- {
- puts("lista vazia");
- getch();
- }
- else
- {
- aux6=*inicio;//declara o auxilixar
- while(aux!=NULL)//a cada vez que o while roda o contador conta +1
- {
- aux6=aux6->prox;
- j++;
- }
- aux1=*inicio;
- for(int i=1;i<y;i++)
- {
- aux1=aux1->prox;
- }
- if(y<0 ||y>4)
- {
- puts("nao existe esta pocicao");
- getch();
- }
- else
- {
- if((*inicio)->info==aux1->info)//se o numero que quero remover estiver no inicio
- {
- aux3=(*inicio)->prox;//aux1 para segurar o proximo noh
- aux2=*inicio;//aux2 2 para remover o inicio
- free(aux2);//removendo o inicio
- *inicio=aux3;//atualizando o inicio
- (*inicio)->ant=NULL;//atualizando o NULL
- }
- else
- {
- if((*fim)->info==aux1->info)
- {
- aux=(*fim)->ant;//auxiliar para segurar o noh anterior do fim
- aux3=*fim;//auxiliar para remover o fim
- free(aux3);//comando para remover o fim
- *fim=aux;//atualizando o novo fim
- (*fim)->prox=NULL;//atualizando o novo NULL
- }
- else
- {
- aux4=aux1->ant;
- aux4->prox=aux1->prox;
- free(aux1);
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement