Você está na página 1de 2

UTFPR​ ​-​ ​Universidade​ ​Tecnológica​ ​Federal​ ​do​ ​Paraná

DACOM​ ​-​ ​Departamento​ ​de​ ​Computacão


LT33B​ ​::​ ​Estrutura​ ​de​ ​Dados

Exercícios​ ​06​ ​::​ ​Lista​ ​Encadeada

Instruções​ ​Gerais
● Utilize​ ​o​ ​projeto​ ​trabalhado​ ​na​ ​última​ ​aula​ ​como​ ​base.
● Lembre-se​ ​que​ ​você​ ​pode​ ​usar​ ​as​ ​operações​ ​(funções)​ ​já​ ​existentes​ ​para​ ​facilitar​ ​seu​ ​trabalho.

Considerando​ ​uma​ ​Lista​ ​Encadeada​ ​como​ ​a​ ​trabalhada​ ​em​ ​aula,​ ​implemente​ ​as​ ​operações​ ​solicitadas:

1. Devolve​ ​a​ ​soma​ ​dos​ ​valores​ ​contidos​ ​na​ ​lista.


int​ ​listSum(List*​ ​list);

2. Devolve​ ​o​ ​maior​ ​valor​ ​contido​ ​na​ ​lista.


int​ ​listMax(List*​ ​list);

3. A altura de um Node c em uma lista encadeada é a distância entre c e o fim da lista. Escreva uma
função​ ​que​ ​calcula​ ​a​ ​altura​ ​de​ ​um​ ​Node​ ​com​ ​o​ ​valor​ ​“e”​ ​informado.
Int​ ​listHeight(List*​ ​list,​ ​int​ ​e)

4. A profundidade de um Node c em uma lista encadeada é o número de passos do início até c. Escreva
uma​ ​função​ ​que​ ​calcule​ ​a​ ​profundidade​ ​de​ ​um​ ​Node​ ​com​ ​o​ ​valor​ ​“e”​ ​informado.
Int​ ​listDepth(List*​ ​list,​ ​int​ ​e)

5. Insere​ ​o​ ​valor​ ​“e”​ ​informado​ ​em​ ​um​ ​novo​ ​Node​ ​na​ ​lista,​ ​em​ ​ordem​ ​decrescente​ ​de​ ​id.
void​ ​listInsertSortedDesc(List*​ ​list,​ ​int​ ​e)

6. Busca​ ​e​ ​remove​ ​o​ ​Node​ ​que​ ​contenha​ ​o​ ​valor​ ​“e”​ ​informado.
void​ ​listRemove(List*​ ​list,​ ​int​ ​e)

7. Transforma a Lista Encadeada em uma Lista Circular. Para tanto, o último elemento deverá apontar
para​ ​o​ ​primeiro.
void​ ​listMakeCircular(List*​ ​list)

8. Imprime​ ​uma​ ​Lista​ ​Circular.


void​ ​listPrintCircular(List*​ ​list)

Você também pode gostar