Ir ao conteúdo
  • Cadastre-se

Lista encadeads


Nanda Lara

Posts recomendados

Dada uma lista encadeada de números inteiros cujo tipo que representa um nó da Lista é dado por:

 

 
struct lista {int info;struct lista *prox;};typedef struct lista Lista;

Implemente uma função que receba uma lista encadeada do tipo Lista e retorne um vetor de números inteiros, alocado dinamicamente, contendo as informações presentes na mesma ordem que na lista, e o número de elementos neste vetor. Assim, se for recebida a lista L será retornado o vetor {1, 89, 54, 5} e o número de elementos igual a 4. Se a lista for vazia, o vetor retornado deverá estar vazio e o número de elementos igual a 0. O protótipo da função é dado por:

int* Copia_Lista(Lista* L, int* n);

Alguem poderia me ajudar como faz , ou me da uma explicação.

Obrigada desde já.

Link para o comentário
Compartilhar em outros sites

Atlos, o exercício em questão é que eu devo implementar uma função na qual recebe uma lista encadeada e  retorne um vetor com números inteiros, e a quantidade de elementos. ex:

 

se a lista tiver os seguintes elementos (1,2,3,4,5)

 

deve retornar um vetor com esses mesmos valores na mesma ordem, além de dizer que o vetor possui nesse caso 5 elementos.

 

Só que não sei como fazer isso,

 

Se puder me ajudar, ficarei agradecida!

Link para o comentário
Compartilhar em outros sites

então ta pronto ja praticamente se voce ainda nao sabe usar listas encadeadas aqui tem um bom tutorial 

http://www.ime.usp.br/~pf/algoritmos/aulas/lista.html

 

aqui no fórum tem um monte de tópico sobre isso,tem um bem no topo 

http://forum.clubedohardware.com.br/forums/topic/646067-estruturas-de-dados-pilhas-filas-listas-encadeadas/

Link para o comentário
Compartilhar em outros sites

a função poderia ser feita assim

nt* Copia_Lista(Lista* l, int* n){    if(l == 0)      //Testa pra ver se a lista ta vazia        return (int*)0;          Lista *t = l;    //Usa um temporario para percorrer a lista    while(t != NULL) //Depois conta até onde vai a lista e incrementa n    {            t = t->prox;        *n +=1;      }    int *p = new int[*n]; //cria o array dinamico    t = l; //aponta para o começo da lista de novo para percorrer a lista    int ntemp = 0;    while(ntemp < *n)    {        p[ntemp] = t->info;    //Copia as informações        t = t->prox;        ntemp++;    }            return p;}
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...