Lista de exercícios – Parte 2: indexação Estrutura de Dados II – Prof. Jairo Francisco de Souza Departamento de Ciência da Computação – Universidade Federal de Juiz de Fora – Implemente a função de união de heaps esquerdistas em C, C++ ou Java. – Implemente a função de remoção da raiz em um heap esquerdista. – Implemente a função de inserção de um nó em um heap esquerdista. – Faça a união de dois minheaps esquerdistas a seguir: – Considerando o tipo de dado abaixo (ver nota de aula) para implementar árvores binomiais, faça o que se pede a seguir: struct NoBin { int valor, grau; NoB *pai, irmao, filho; } typedef struct NoBin * Heap; (a) implemente a função int menor(Heap h) que retorna o menor valor no heap; (b) implemente a função NoBin * adicao(NoBin *b1, Nobin *b2) que retorna a árvore binomial resultante da adição de duas árvores. (c) implemente a função NoBin * montaBin(Heap h, int valor) que recebe um heap binomial que contém, necessariamente, as árvores binominais de grau 0 a k, e um valor inteiro. A função deve retornar a árvore binomial (não necessariamente será um heap) de grau k+1, onde valor estará na raiz da árvore. (d) implemente a função NoBin * busca(Heap h, int v) que retorna o nó de valor v dentro do heap. – Implemente cada um dos casos de inserção em uma árvore vermelho-preto. – Em relação à árvore B, pede-se: 1. Crie, em C, uma estrutura chamada noB para representar o nó de uma árvore B. 2. Implemente o algoritmo de busca na árvore B usando a estrutura de nó criada acima. 3. Supondo que um nó X possua filhos com espaço, faça um algoritmo de inserção do valor y na árvore B a partir de X (lembre-se de manter as páginas ordenadas). 4. Supondo que um nó X possua filhos sem espaço para inserção, faça um algoritmo para inserção do valor y na árvore B a partir de X com cisão de nó. 5. Implemente o algoritmo de tratamento de underflow na árvore B para os casos de concatenação e redistribuição. – Implemente um procedimento para tratamento de overflow em uma árvore B+ – Dado um nó X e um ponto p como entrada, implemente o algoritmo de inserção em uma Point-QuadTree. – Crie, em pseudocódigo, um algoritmo para desenhar um polígono descrito em um Polygon QuadTree – Crie, em C, uma estrutura chamada noR para representar o nó de uma árvore R. – Supondo que serão inseridos somente retângulos numa árvore R, criar uma função booleana para calcular se há ou não interseção entre dois polígonos. – Implemente o algoritmo de busca em uma árvore R.