Considerando listas estáticas de valores inteiros, implemente uma função que receba como parâmetro uma lista encadeada , uma posição N1 e outra posição N2. Essa função deve trocar o elemento contido na posição N2 pelo contido na N1 e trocar o elemento contido na N1 pelo contido na N2.
RD Resoluções
Há mais de um mês
Nesse exercício vamos estudar listas encadeadas. Como o enunciado cita ponteiros, vamos utilizar a linguagem C.
Como não foi citada se a lista é simplesmente encadeada ou duplamente encadeada, vamos fazer para a simplesmente encadeada, que também funciona para a duplamente encadeada, mas não é otimizada para ela.
O código abaixo (comentado) faz o que se pede:
Lucas Almeida Aguiar
Há mais de um mês
//função em c++
//definindo a lista
typedef struct node{
int elem;
node* next;
}
// função que troca elementos
// usando a notação de que a lista é um ponteiro para o primeiro elemento
void change_elements( node *list, int N1, int N2){
node *N1_tmp, *N2_tmp;
for(int i=0; i<N1; i++, N1_tmp=list->next);
for(int i=0; i<N2; i++, N2_tmp=list->next);
int tmp = N1_tmp->elem;
N1_tmp->elem = N2_tmp->elem;
N2_tmp->elem = tmp;
return;
}
Rafael Ourique
Há mais de um mês
OK lucas muito obrigado! consegui passar direto nessa matéria - rs grande abraço!
Andre Smaira
Há mais de um mês
Nesse exercício vamos estudar listas encadeadas. Como o enunciado cita ponteiros, vamos utilizar a linguagem C.
Como não foi citada se a lista é simplesmente encadeada ou duplamente encadeada, vamos fazer para a simplesmente encadeada, que também funciona para a duplamente encadeada, mas não é otimizada para ela.
O código abaixo (comentado) faz o que se pede: