01

Em uma árvore, a organização dos elementos se dá de forma hierárquica, existindo um elemento que fica no topo da árvore, chamado de raiz e os elementos subordinados a ele, seus nós filhos.

Cada nó filho pode conter zero, um ou mais de um nó filho.

Olhando para uma árvore por camadas:

Note que a implementação da árvore se dá por lista ligada mas poderia ser por vetores também. Isto é uma lista ou um vetor podem representar uma árvore, embora a representação por listas seja mais fácil de se encontrar em algoritmos.

O NIL representa um ponteiro que não aponta para outro elemento.

Uma estrutura do tipo árvore possui entre seus elementos:

  1. Raiz (início da árvore) e folhas (nós sem filhos).
  2. Folhas (início da árvore) e e raiz (nós sem filhos).
  3. Folhas (meio da árvore) e raiz (nós sem filhos).
  4. Raiz (início da árvore) e filhos
  5. Raiz (início da árvore) e folhas e filhos (nós).

Solução do professor

Por definição, a árvore possui um apontador para o início (raiz da árvore) e folhas que são elementos sem subárvores.

02

Listas ligadas

Se o armazenamento dos elementos da lista anterior estiver em blocos de letras espalhados pela memória e não “colados uns aos outros”, temos uma lista ligada. Uma lista ligada tem importante diferença com relação a vetores porque geralmente será utilizada quando o tamanho da memória do computador a ser alocado não é conhecido a priori e mais memoria deve ser alocada dinamicamente durante a execução do próprio programa. Cada elemento da lista, neste caso o nome de uma pessoa, precisa ter um endereço apontando para o próximo elemento da lista. A lista ligada precisa de um ponteiro apontando para o início da lista e um ponteiro no final da lista apontando para o seu final (chamado de NIL ou NULL).

Importante perceber as diferenças nos métodos de busca e adição e eliminação de elementos em uma lista ligada. Depende somente da mudança de para onde apontam os apontadores.