Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE ESTADUAL DO SUEDOESTE DA BAHIA - UESB DEPARTAMENTO DE CIÊNCIAS E TECNOLOGIA – DCT CURSO DE SISTEMAS DE INFORMAÇÃO ALGORITMOS E ESTRUTURA DE DADOS I – PRÁTICA 03 ATIVIDADE III 1. Considere a implementação de listas encadeadas utilizando apontadores vista em sala. Escreva um procedimento Troca(TipoLista* pLista, TipoCelula* p) que, dado um apontador para uma célula qualquer (p), troca de posição essa célula com a sua célula seguinte da lista, como mostrado na figura abaixo. (Obs. Não vale trocar apenas o campo item! Você deverá fazer a manipulação dos apontadores para trocar as duas células de posição). Não esqueça de tratar os casos especiais. 2. Considere a implementação de listas encadeadas utilizando apontadores vista em sala e responda as seguintes perguntas: Escreva uma função void Inverte(TipoLista *Lista) que, dada uma lista com um número qualquer de elementos, inverte a ordem dos elementos da lista, como exemplificado na figura abaixo. (Obs. Não vale trocar apenas os campos item ou usar uma lista / fila / pilha auxiliar! Você deverá fazer a manipulação dos apontadores para trocar as células de posição). 3. Dada uma lista encadeada que armazena números inteiros escreva uma função que transforma a lista dada em duas listas encadeadas: a primeira contendo os elementos cujo conteúdo é par e a segunda contendo os elementos com conteúdo impares. Sua função deve manipular somente os apontadores e não o conteúdo das células. Exemplo: 4. Dada uma lista duplamente encadeada, faça um procedimento que conte o número de elementos desta lista. 5. Faça um programa que concatene duas listas duplamente encadeadas, dando origem a uma única lista com Terc. Exemplo: Prim Lista tem os elementos: 1, 3 e 7 Seg Lista tem os elementos: 2 e 4 A lista Terc será: 1, 3, 7, 2 e 4 (LEMBRANDO QUE SÃO LISTAS DUPLAMENTE ENCADEADAS). 6. Faça um procedimento que remove todas as ocorrências do elemento x de uma lista duplamente encadeada.
Compartilhar