Académique Documents
Professionnel Documents
Culture Documents
http://www.dcc.ufrj.br/~francisco_vianna/livros/
Estruturas.de.Dados.Usando.C.-.Tenenbaum.pdf
http://www-usr.inf.ufsm.br/~juvizzotto/elc1067-2013b/estrut-dados-pucrio.pdf
http://www.mlaureano.org/livro/livro_estrutura_conta.pdf
http://www.esj.eti.br/Apostilas/EstruturasDeDados.pdf
1. Cite quais as vantagens de utilizarmos listas com estruturas ligadas ao invs
de estruturas sequenciais. Alm disso, em quais outras estruturas seria
vantajoso utilizar o modelo de estruturas ligadas, ao invs de sequencial?
2. Qual a diferena conceitual de uma lista para uma fila?
Para os prximos exerccios, vamos trabalhar com Listas Ligadas. Considere o
seguinte struct:
------------------------------------------------------------------------------------------------
--------------
3. Implemente uma funo de criar um n do tipo listaAlunos. O prottipo da
funo deve ser:
listaAlunos *criaNo(int ra, float n1, float n2);
4. Implemente uma funo de inserir elementos na lista ligada. Lembre-se, o seu
programa deve conter um ponteiro global para o incio da lista. Essa funo
deve conter a lgica de inserir um n de maneira ordenada pelo RA,
independente da posio em que ele v parar. O prottipo da funo deve
ser:
void insereNoLista(listaAlunos **li,listaAlunos *novoNo);
PS: Observe que o parmetro desta funo do mesmo tipo de retorno da
funo do exerccio 3. Logo, no decorrer do programa, essa funo deve ser
utilizada, passando como parmetro o resultado da funo criaNo.
5. Implemente uma funo de remover elementos na lista ligada. Essa funo
deve manter a lista ordenada ao remover um elemento, independente de sua
posio. O prottipo da funo deve ser:
void removeNoLista(listaAlunos **li,int ra);
PS: A funo deve imprimir uma mensagem de erro caso o ra ser removido
no exista.
6. Implemente uma funo iterativa que retorne a quantidade de alunos na lista
ligada, ou seja, que calcule o nmero de ns da lista. O prottipo da funo
deve ser:
int quantidadeNoLista(listaAlunos *li);
6. Implemente uma funo recursiva que retorne a quantidade de alunos na
lista ligada, ou seja, que calcule o nmero de ns da lista. O prottipo da
funo deve ser:
int quantidadeNoLista(listaAlunos *li);
7. Implemente uma funo iterativa que faa uma mdia aritmtica das notas
n1 e n2 dos alunos. Essa funo deve percorrer a lista ligada, aluno por
aluno, calcular a mdia. Faa-a se baseando no prottipo abaixo:
8. Implemente uma funo que, dado um determinado RA, imprima todos os
dados do n. Tente implement-la da maneira mais eficiente possvel,
impedindo buscas desnecessrias, por exemplo, se o primeiro RA 10, e
estamos buscando pelo 5, logo o RA 5 no existir na lista. Lembre-se que a
lista est ordenada.
O prottipo da funo deve ser:
PS: A funo deve imprimir uma mensagem de erro caso o ra buscado no
exista.
9. Implemente uma funo que retorne a mdia aritmtica de todos os alunos,
de 3 maneiras:
1 Retorne a mdia de todos os alunos na n1
2 Retorne a mdia de todos os alunos na n2
0 Retorne a mdia de todos os alunos na n1 e na n2: ((n1+n2)/2)
O prottipo da funo deve ser:
float mediaTotal(listaAlunos *li, int tipoDeMedia);
Onde o parmetro tipoDeMedia poder ter como valores 0, 1 ou 2. O retorno
ser a mdia calculada conforme o parmetro especificar.
10. Implemente uma funo para imprimir a lista. Essa funo ser muito
semelhante ao exerccio 7. O prottipo da funo deve ser:
void imprimeLista(listaAlunos *li);
------------------------------------------------------------------------------------------------
--------------
Para os prximos exerccios, considere a seguinte funo:
------------------------------------------------------------------------------------------------
--------------
11. Considerando a funo acima, qual estrutura de dados ela pertence?
12. Sobre tal estrutura de dado, qual sua principal diferena para a Lista Ligada
comum?
13. A funo acima utiliza o mesmo struct aluno do comeo da lista. Porm, quais
adequaes ele deve sofrer para se adaptar essa funo?
14. A funo acima est correta? Justifique.
15. Ao rodar a funo acima da maneira que est, quais problemas vo acontecer?
Justifique.
16. Faa correes que achar necessrias para o correto funcionamento da
funo.
17. Implemente uma funo de remoo para a estrutura acima. Essa funo deve
ordenar a Lista Duplamente Ligada ao remover um elemento.