Saudações,
Analisando as diversas provas anteriormente aplicadas em Estrutura de Dados, localizei uma pergunta que não foi respondida por nenhuma, absolutamente nenhuma pessoa. Ninguém tentou responder... Incrivelmente todas em branco...
Certo, eu também não sei nem por onde começar, aparentemente não é algo complicado, só não estou entendendo a pergunta (por mais clado que esteja).
Se alguém souber como responde-la eu agradeço e parabenizo!
Considere uma lista simplesmente encadeada não circular de inteiros e o tipo
struct no {
int dado
struct no *link;
};
Faça uma função para inverter a lista e retornar o ponteiro para o inicio da lista resultante.
Protótipo: no *inverter(no *ini); //ini aponta para inicio da fila
//*************************************************//
Mariana sou Alexsandro do RJ fiz Estrutura de dados na Estácio e em nenhuma das Avs que fiz identifiquei a sua pergunta bom se você precisar posso enviar minhas AVs,
Abs.
Pelo que eu entendi é apenas inverter uma lista por exemplo: 0 1 2 3... para 3 2 1 0, então ficaraia assim:
//FUNÇÃO PARA INSERIR
no* inserir(no* ini, int d) {
no* b;
b = new no;
b->dado = d;
b->prox = ini;
return b;
}
//FUNÇÃO PARA INVERTER
no* inverter(no* ini) {
no* aux = ini;
no* inv = NULL;
while (aux != NULL) {
inv = inserir(inv, aux->dado);
aux = aux->prox;
}
return inv;
}
//SÓ O INVERTER SEM O INSERIR
no* inverter(no* ini) {
no* aux = ini;
no* inv = NULL;
while (aux != NULL) {
no*a;
a = new no;
a->dado = aux->dado;
a->prox = inv;
inv = a;
aux = aux->prox;
}
return inv;
}
Estou aprendendo também, se tiver alguma solução melhor ou algum erro é só me avisar.
Abraço!
Para escrever sua resposta aqui, entre ou crie uma conta.
Compartilhar