Baixe o app para aproveitar ainda mais
Prévia do material em texto
Estruturas de Dados Correção AP1 Prof. Patrícia Noll de Mattos Deve ser realizado de forma individual: 1)Criar uma função que remova o menor elemento de uma lista simplesmente encadeada com header. 2)Criar uma função que troque o campo dados do primeiro elemento com o último, o segundo elemento, com o penúltimo, o terceiro elemento, com o antepenúltimo, e assim por diante, de forma que a lista duplamente encadeada com header, fique espelhada. int remove_menor(struct header *lista) { int valor=0; struct nodo *ant=NULL, *antm=NULL, *aux=NULL, *m=NULL; aux = lista->inicio; m=aux; while (aux != NULL) { if(aux->dados < m->dados) { antm=ant; m=aux; } ant = aux; aux = aux->prox; } if(m != NULL) { valor = m->dados; if (m==lista->inicio) lista->inicio = m->prox; else antm->prox = m->prox; if (m == lista->fim) lista->fim = antm; lista->qtde--; free(m); } return valor; } 7 5 10 lista 2inicio fim aux ant m antm void inverte_lista(struct aponta_header *listad) { int nro, valor, c=1; struct aponta_nodo *aux, *aux2; if(lista->qtde>=2) { nro = lista->qtde / 2; aux = lista->inicio; aux2 = lista->fim; while (c<=nro) { valor = aux->dados; aux->dados = aux2->dados; aux2->dados = valor; aux=aux->prox; aux2=aux2->ant; c++; } } else printf(“A lista não possui pelo menos 2 elementos!”); } 710 5 listad 3inicio fim aux aux2 Valor 5 C 2 Nro 1
Compartilhar