Exercícios – Estrutura de Dados II Prof. Gale 1.) Consideran Considerando do listas de valores inteiros, inteiros, implemente implemente uma função que receba como parâmetro parâmetro uma lista encadeada e um valor inteiro n e divida a lista em duas, de tal forma que a segunda lista comece no primeiro nó logo após a primeira ocorrência de n na lista original. A figura a seguir ilustra essa separação
!ssa função deve obedecer ao protótipo
A função deve retornar um ponteiro para a segunda sub"divisão da lista original, enquanto l deve continuar apontando para o primeiro elemento da primeira subdivisão da lista. #.) Considere Considere estruturas estruturas de listas encadeadas que arma$enam arma$enam valores valores reais. % tipo que representa um nó da lista & dado por
'mplemente uma função que, dadas duas listas encadeadas l1 e l#, concatene a lista l# no final da lista l1, conforme ilustra a figura abai(o
A função deve retornar a lista resultante da concatenação, obedecendo ao protótipo Lista* concatena concatena (Lista* l1, Lista* l2)
%bserve que l1 eou l# podem ser listas va$ias. *.) Considere Considere estruturas estruturas de listas encadeadas encadeadas que arma$enam valores valores inteiros. inteiros. % tipo que representa um nó da lista & dado por
struct lista + int info struct lista- pro(
t/pedef struct lista 0ista
'mplemente uma função que receba um vetor de valores inteiros com n elementos e construa uma lista encadeada arma$enando os elementos do vetor nos nós da lista. Assim, se for recebido o vetor v23 4 +*, 5, 1, 6, #, a função deve retornar uma nova lista cu7o primeiro nó tem a informação *, o segundo a informação 5, e assim por diante. 8e o vetor tiver $ero elementos, a função deve ter como valor de retorno uma lista va$ia. % protótipo da função & dado por Lista* constrói (int n, int* v)
9.) Considere a implementação de uma lista encadeada que arma$enam valores reais.
'mplemente uma função que, dados uma lista encadeada e um n:mero inteiro não negativo n, remova da lista seus n primeiros nós e retorne a lista resultante. Caso n se7a maior do que o comprimento da lista, todos os seus elementos devem ser removidos e o resultado da função deve ser uma lista va$ia. !ssa função deve obedecer o seguinte protótipo Lista* retira_prefixo (Lista* l, int n)
2.) Considere uma lista simplesmente encadeada que arma$ena os seguintes dados de alunos de uma disciplina
;:mero de matricula n:mero inteiro ;ome com at& 5< caracteres =edia da disciplina n:mero de ponto flutuante
a) considerando que o tipo que representa um nó da lista & dado por typedef struct lista Lista;
>efina a estrutura denominada lista que conten?a os campos apropriados para guardar as informaç@es de um aluno na lista, conforme descrito acima. b) implemente uma função que insira, em ordem crescente de n:mero de matrcula, os dados de um novo aluno na lista. !ssa função deve obedecer o seguinte protótipo, retornando o ponteiro para o primeiro elemento. Lista* ins_ordenado (Lista* l, int mat, char *nome, float nota)
Boa orte!!!