Biblioteca 113 Nd 08

55
ISSN - 0103-2585 Técnicas avançadas de programação Prolog para tratamento de árvores MARIA CAROLINA M0NARD MARIA DO CARMO NICOLETTI N° 008 NOTAS DIDATICAS DO ICMSC São Carlos fev. / 1993

description

Técnicas avançadas de programação Prologpara tratamento de árvores

Transcript of Biblioteca 113 Nd 08

ISSN - 0103-2585 Tcnicas avanadas de programao Prolog para tratamento de rvores MARIA CAROLINA M0NARD MARIA DO CARMO NICOLETTI N 008 NOTASDIDATICASDOICMSC SoCarlos fev. / 1993 TcnicasAvanadasdeProgramaoProlog paraTratamentodeArvores MariaCarolinaMonard1 UniversidadedeSoPaulo/ILTC InstitutodeCinciasMatemticasdeSoCarlos DepartamentodeCinciasdeComputaoeEstatstica MariadoCarmoNicoletti UniversidadeFederaldeSoCarlos/ILTC DepartamentodeComputao Fevereiro1993-Verso2.0 trabal horealizadocomoauxliodoCNPq/ ILTC. Contedo 1Prefacio1 2Introduo2 2.1DefinioeTerminologiaBsica2 2.2Representao4 3rvoreBinria6 3.1Representao7 3.2Programas8 3 . 2 . Ex i b i rumarvoFe9 3.2.2DeterminarseumElementoPertenceaumarvoreBinaria. . .11 3.2.3DeterminarseDuasrvoresBinriassoIsomorfas13 3.2.4SubstituirTodasasOcorrnciasdeumElemento emuma rvore Binria14 3.2.5EncontraraAlturadeumarvoreBinria15 3.2.6PercorrerrvoresBinrias16 3.2.7Pr-ordem19 3.2.8In-ordem19 3.2.9Ps-ordem20 3.2.10LinearizarumarvoreBinria21 4DicionrioBinrio23 4.1Introduo23 4.2Programas24 4.2.1ProcurarumElementoemumDicionrioBinrioeConstruiro Dicionrio25 4.2.2VerificarseumaEstruturaumDicionrioBinrio29 4.2.3ElementoMximoeMnimodeumDicionrioBinrio30 4.2.4DeleodeumElementoemumDicionrioBinrio31 4.2.5rvoresAVL34 5GeneralizaodeDicionrioBinrio41 5.1rvoreQuad41 // 5.2ProcurarumElementoemumaArvoreQuadeConstruodaArvore Quad42 5.3rvoreQuadtima45 6Concluses49 Referncias ii 1Prefcio AlinguagemdeprogramaolgicaPrologsurgiunadcadade70eganhoupopulari-dade nosltimos anos atravs,principalmente,deseuuso emaplicaesde computao simblica. Existemvrios livros queabordamosfundamentostericosdeprogramao lgica;no difcil, entretanto, encontrarlivrosespecficosdalinguagemProlog,ondea linguagem introduzidaatravsdeproblemasedesuassoluesemProlog. OaumentosignificativodepublicaesquetratamdeProlog justifica-setambmpelo aumentodonmerodecursosqueutilizamestalinguagem,tantoanveldegraduao, quantoanveldeps-graduao. Lembrandoqueumalinguagempodeserclassificadacomoprocedural,funcionale/ou lgica,aoanalisarmosocurriculumdenossoscursosdecomputao,verificamosque primeirosoensinadasvrias linguagensprocedimentais,taiscomoPascal,Cobol,For-tran,etc.,edepoislinguagensdotipoApl,Lisp,Prolog,etc. Temos observado,aps vrios anosde experincia comensino emcursosdecomputao, que o estilo procedimentalde programao,talvezpor ser o primeiro ensinado,interfere, decerta forma,na correta aprendizagemdalinguagemPrologpor parte dosestudantes. Constatamos,poroutrolado,quetalinterfernciapodeserminimizadasedurante oaprendizadodeProlog,osestudantesforemsubmetidosresoluodeconjuntos deproblemassemelhantes.Motivadosportalconstatao,decidimosprepararuma sriedenotasemprogramaoProlog,cadaumadelastratandoclassesdeproblemas semelhantes,edesenvolvendoparacadaumdelesaresoluoemProlog. JforampublicadaspeloInstitutodeLgicaFilosofiaeTeoriadaCincia-ILTC-as notas dedicadasa processamento de listas[Monard88]e rvores[Monard89].Devido boareceptividadedessasnotas,resolvemosreestrutur-las[Monard93].Estefascculo umareorganizaodaNotaProgramasPrologparaProcessamentodeArvores.Deve serressaltadoqueosproblemasaquiapresentadosseencontramespalhadosnosvrios livroscitadosnasreferncias.OquepretendemosnestaNota reunirediscutiralguns problemastpicos,apresentandoparacadaumdelesumasoluo. Afimderesolverosproblemasaquitratados,oleitordeverterumconhecimento bsicodalinguagemProlog verlivrostextoslistadosnasReferncias.Eimportante tambmquetenteresolverosproblemaseexecutarseusprogramasantesdeconsultar assoluespropostasnestaNota. AsintaxedoPrologutilizadaasintaxedeEdinburgh,especificamenteutilizamos oArity-Prolog[Arity90].HimplementaesdePrologqueusamoutrassintaxes. Comoasintaxedalinguagemmuito simples,torna-sefcila expressodeummesmo programaemdiferentessintaxes. 1 2Introduo rvoreumaestruturadedadosextremamenteimportantenaqual,damesmaforma quenaestruturadedadoslista,existeumarelaoentreosdadosqueacompe.No casodaestruturadervorearelaoqueexisteentreosdados,chamadosnos,uma relao de hierarquia, onde umconjunto de ns hierarquicamente subordinado a outro. Porexemplo,sejaumaclassificao(incompleta)deanimaisqueobedeceseguinte hierarquia: ve rtebrados invertebrados aves peixes mami feros carnvoros herbvoros primatas felinos homem smios leo tigre gato EstasrelaeshierrquicaspodemserrepresentadascomomostraaFigura1,pg.3,que exibemaisclaramenteaestruturasobforma deumarvoredeclassificaodeanimais. 2.1DefinioeTerminologiaBsica Formalmente,umarvoreumconjuntofinitodeumoumaisnsonde: 1.existeumnespecialdenominadoraizdarvore; 2.osdemaisnsformamnconjuntosdisjuntos(n>0),ondecadaumdestescon-juntosT,,(1