A maior rede de estudos do Brasil

Questão av2/av3, alguém sabe responder?

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!

  • Ai vai:

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

//*************************************************//


7 resposta(s) - Contém resposta de Especialista

User badge image

RD Resoluções Verified user icon

Há mais de um mês

Para responder essa questão devemos aplicar nosso conhecimento sobre estrutura de dados.


Para fazer essa função devemos primeiramente definir a estrutura da lista, então temos;

struct no {typedef struct no * Lista;

int info;

struct no * prox;

};

Feito isso podemos desenvolver a função que inverte toda a lista. Logo temos;

Lista inverter(Lista *lst){

Lista Aux, Aux2;

Aux=cria_lista();

while(lista_vazia(*lst)!=1){

Lista N=(Lista) malloc (sizeof(struct no));

if(N==NULL) return NULL;

else{

N->info=(*lst)->info;

N->prox=Aux;

Aux=N;

Aux2=*lst;

*lst=(*lst)->prox;

free(Aux2);

}

}

return Aux;

}


É importante ressaltar que devido uma questão de facilidade de implementação foi adotado um typedef que já é um ponteiro para estrutura, não sendo necessário então o uso do ponteiro no tipo da função.


Portanto temos o código acima que executa o que é pedido no exercício acima.

Para responder essa questão devemos aplicar nosso conhecimento sobre estrutura de dados.


Para fazer essa função devemos primeiramente definir a estrutura da lista, então temos;

struct no {typedef struct no * Lista;

int info;

struct no * prox;

};

Feito isso podemos desenvolver a função que inverte toda a lista. Logo temos;

Lista inverter(Lista *lst){

Lista Aux, Aux2;

Aux=cria_lista();

while(lista_vazia(*lst)!=1){

Lista N=(Lista) malloc (sizeof(struct no));

if(N==NULL) return NULL;

else{

N->info=(*lst)->info;

N->prox=Aux;

Aux=N;

Aux2=*lst;

*lst=(*lst)->prox;

free(Aux2);

}

}

return Aux;

}


É importante ressaltar que devido uma questão de facilidade de implementação foi adotado um typedef que já é um ponteiro para estrutura, não sendo necessário então o uso do ponteiro no tipo da função.


Portanto temos o código acima que executa o que é pedido no exercício acima.

User badge image

Alexsandro

Há mais de um mês

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.

User badge image

Márcio

Há mais de um mês

Só mudar o final, PROTÓTIPO: *inverter(no *ini); //ini

User badge image

Andre

Há mais de um mês

Para responder essa questão devemos aplicar nosso conhecimento sobre estrutura de dados.


Para fazer essa função devemos primeiramente definir a estrutura da lista, então temos;

struct no {typedef struct no * Lista;

int info;

struct no * prox;

};

Feito isso podemos desenvolver a função que inverte toda a lista. Logo temos;

Lista inverter(Lista *lst){

Lista Aux, Aux2;

Aux=cria_lista();

while(lista_vazia(*lst)!=1){

Lista N=(Lista) malloc (sizeof(struct no));

if(N==NULL) return NULL;

else{

N->info=(*lst)->info;

N->prox=Aux;

Aux=N;

Aux2=*lst;

*lst=(*lst)->prox;

free(Aux2);

}

}

return Aux;

}


É importante ressaltar que devido uma questão de facilidade de implementação foi adotado um typedef que já é um ponteiro para estrutura, não sendo necessário então o uso do ponteiro no tipo da função.


Portanto temos o código acima que executa o que é pedido no exercício acima.

Essa pergunta já foi respondida por um dos nossos especialistas