Estrutura de dados
Lista de exerc[cios – Árvores Binárias de Busca 1 — Escreva versões recursivas de TREE-MINIMUM and TRES- MAXIMUM. R. : – Minimo public No minimoRecursivo(No no){ if(no. getFiIhoEsq()! =null){ return minimoRecursivo(no. getFilhoEsq0); return no; – Máximo public No maximoRe OF3 p if(no. getFiIhoDlr()! =nulI){ return 2 – Escreva o procedimento TREE-PREDECESSOR. R. : public No predecessor(No no){ return maximoRecursivo(no. getFilhoEsq()); No y = no. getPai(); no no y; sua resposta ou dê um contra- exemplo. R..
Não há diferença em deletar x ey ou ye x, pois o sucessor de x ou y é deslocado para a posição correta, mantendo a estrutura da árvore. 5 – Faça uma sub-rotina para verificar se duas árvores binárias de busca são similares. Duas ABBs são SIMILARES se possuem a mesma distribuição de nós (independente dos valores nos mesmos). Em uma definição mais formal, duas ABBs são SIMILARES se são ambas vazias, ou se suas subárvores esquerdas são similares e suas subárvores direitas também são imilares.
R. : public void similar(ArvoreBusca a, ArvoreBusca b){ No raizl = a. raiz(); No raiz2 = b. ralz(); = a. contlnterfixado(raizl . getFilhoEsq()); int cEsq1 = a. contlnterfixado(raizl . getFilhoDir()); int CDirl int cEsq2 = a. contlnterfixado(raiz2. getFilhoEsq()); int cDir2 = -=cEsq2 (a. ralz()==null&&b. raiz()==null)){ System. out. println(“Diferentes”); iguais. R. : public boolean iguais(No nol, No n02){ boolean flag = true; return false; if((nol! =null && n02! =nuIl)&& nol . etElemento()==n02. getElement00)){ iguais(nol . getFilhoEsq(), n02. getFilhoEsq()); iguais(nol . getFilhoDir(), n02. getFilhoDir()); else{ flag = false; return flag; 7 – Uma ABB é estritamente binária se todos os nós da árvore tem 2 filhos. Implemente uma subrotina que verifica se uma ABB é estritamente binária R.. public boolean binaria(No nol){ if(! flag) if((nol . getFilhoDir()! =nulI && nol . getFiIhoEsq()! =nuIl)){ binaria(nol . getFilhoDir()); binaria(nol . getFilhoEsq()); 3