1 / 90

Estrutura de Dados

INSTITUTO FEDERAL AMAZONAS. Estrutura de Dados. Prof. Miguel Bonafe miguelbonafe@hotmail.com. INSTITUTO FEDERAL AMAZONAS. Apostila #1. Referencia bibliográfica : Estrutura de Dados e Algoritmos Uma Abordagem Didatica Celso Roberto Moraes Editora Futura. Instituto Federal

xander
Download Presentation

Estrutura de Dados

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. INSTITUTO FEDERAL AMAZONAS Estrutura de Dados Prof. Miguel Bonafe miguelbonafe@hotmail.com

  2. INSTITUTO FEDERAL AMAZONAS Apostila #1 Referenciabibliográfica: Estrutura de Dados e Algoritmos UmaAbordagemDidatica Celso Roberto Moraes EditoraFutura

  3. Instituto Federal Amazonas Aula de hoje: Conceitosúteis E.D. TiposAbstratos de Dados (TAD) Tipos de Dados Estrutura de Dados - Prof. Miguel Bonafe

  4. Estrutura de Dados • Conceitosúteis

  5. Introdução | ConceitosÚteis Instituto Federal Amazonas Iniciamoscitando a celebreafirmação de NIKLAUS WIRTH de que: PROGRAMA = ED + ALGORITMOS Aquipodemosevidenciar a importancia das estruturas de dados e dos algoritmos no contexto dos computadores. ED = Estrutura de Dados Estrutura de Dados - Prof. Miguel Bonafe

  6. Introdução | ConceitosÚteis Instituto Federal Amazonas Iniciamoscitando a celebreafirmação de NIKLAUS WIRTH de que: PROGRAMA = ED + ALGORITMOS Aquipodemosevidenciar a importancia das estruturas de dados e dos algoritmos no contexto dos computadores. ED = Estrutura de Dados Estrutura de Dados - Prof. Miguel Bonafe

  7. Introdução | ConceitosÚteis Instituto Federal Amazonas Realizando a combinaçãoadequada das estruturas de dados com osalgoritmosqueatuamsobreessasestruturas, podemosconseguir a abstração das situações do nossodia-a-diaem um nívelsuficienteparaque um computadorpossaajudar-nosda forma maisútilpossível. ED = Estrutura de Dados Estrutura de Dados - Prof. Miguel Bonafe

  8. Introdução | ConceitosÚteis Instituto Federal Amazonas O computador é umamáquinaqueprocessaessencialmentealgoritmosescritosemumalinguagem de programação. Para criação de programaseficientes, nãobastadominartecnicamenteoscomandos de umalinguagem de programação; é necessárioconhecer um poucomaissobreconstrução de algoritmos e as estruturas de dados. ED = Estrutura de Dados Estrutura de Dados - Prof. Miguel Bonafe

  9. Estrutura de Dados • E.D.

  10. Introdução | ED Instituto Federal Amazonas • Todotrabalhorealizadopor um computador é baseadonamanipulação das informaçõescontidasemsuamemória principal. • E podemosclassifica-lasem 2 tipos. • Instruções (determinam o funcionamentodamaquina) • Dados (informações a seremprocessadas) ED = Estrutura de Dados Estrutura de Dados - Prof. Miguel Bonafe

  11. Introdução | ED Instituto Federal Amazonas Durante a execução de qualquertipo de programa, oscomputadoresestãomanipulandoinformações, paranão se “esquecer” das informações, oscomputadoresprecisamguardá-lasemsuamemória principal. Essasposições de memória, quecontemumadeterminadainformação, sãodenominadaspelosprogramascomovariáveis. ED = Estrutura de Dados Estrutura de Dados - Prof. Miguel Bonafe

  12. Introdução | ED Instituto Federal Amazonas Toda variavelpossuitrêsatributos: nome; tipo; valor ouinformação. Os dados a seremmanipuladospor um programasãoarmazenadosemposiçõesdamemoria principal. Cadaposição de memóriasópodearmazenar um determinadotipo de dado. Entao antes de usaressasposições de memória é necessariodefinir o tipo de dado queseráarmazenado. ED = Estrutura de Dados Estrutura de Dados - Prof. Miguel Bonafe

  13. Introdução | ED Instituto Federal Amazonas Podemosdefinir ED como a organização e a representação das informaçõesgeralmentenamemoria do computadorparaobter a devidaabstração de um problema real e a melhoreficiencianaexecução dos algoritmos, cujasoperaçõesatuamsobreessasestruturas de dados. ED = Estrutura de Dados Estrutura de Dados - Prof. Miguel Bonafe

  14. Estrutura de Dados • TiposAbstratos de Dados (TAD)

  15. Introdução | TAD Instituto Federal Amazonas O que é uma Estrutura de Dados (ED)? São Tipos Abstratos de Dados O que é Tipos Abstratos de Dados (TAD)? Pode ser definido como um conjunto de valores e uma coleção de operadores que atuam sobre esses valores. As operações devem ser consistentes com os tipos de valores. Estrutura de Dados - Prof. Miguel Bonafe

  16. Introdução | TAD Instituto Federal Amazonas A idéia fundamental do tipo de dados abstratos é possibilitar ao programador a separação do que fazer e de como fazer. Considerando a necessidade do programador de gravar um registro em um arquivo. Nessa situação, o programador só precisa saber o que deve ser feito; no caso, gravar um registro. Esse procedimento “gravar” representa um TAD, pois envolve um conjunto de valores e de ações específicas sobre os mesmos. Estrutura de Dados - Prof. Miguel Bonafe

  17. Introdução | TAD Instituto Federal Amazonas Modelo de um tipo abstrato de de Dados (TAD) Dados Dados Estrutura de dados Função A Função B Estrutura de Dados - Prof. Miguel Bonafe

  18. Introdução | TAD Instituto Federal Amazonas Não confunda Tipos de Dados com Tipos Abstratos de Dados (TAD). Embora estes termos sejam parecidos, eles têm significados diferentes. Em linguagens de programação, o tipo de dados de uma variável define o conjunto de valores que a variável pode assumir. Por exemplo, uma variável do tipo lógico pode assumir o valor verdadeiro ou falso. Estrutura de Dados - Prof. Miguel Bonafe

  19. Introdução | TAD Instituto Federal Amazonas Uma declaração de variável em uma linguagem como C ou Pascal especifica: O conjunto de valores que pode assumir. O conjunto de operações que podemos efetuar. A quantidade de bytes que deve ser reservada para ela. Como o dado representado por esses bytes deve ser interpretado (por exemplo, uma cadeia de bits pode ser interpretada como um inteiro ou real...). Estrutura de Dados - Prof. Miguel Bonafe

  20. Introdução | TAD Instituto Federal Amazonas Então, tipos de dados podem ser vistos como métodos para interpretar o conteúdo da memória do computador. Mas podemos ver o conceito de Tipo de Dados de uma outra perspectiva: não em termos do que um computador pode fazer (interpretar os bits...) mas em termos do que os usuários desejam fazer (somar dois inteiros...) Estrutura de Dados - Prof. Miguel Bonafe

  21. Introdução | TAD Instituto Federal Amazonas Este conceito de Tipo de Dado divorciado do hardware é chamado Tipo Abstrato de Dado - TAD. Estrutura de Dados é um método particular de se implementar um TAD. A implementação de um TAD escolhe uma ED para representá-lo. Cada ED é construída dos tipos primitivos (inteiro, real, char,...) ou dos tipos compostos (array, registro,...) de uma linguagem de programação. Estrutura de Dados - Prof. Miguel Bonafe

  22. Introdução | TAD Instituto Federal Amazonas Não importa que tipo de dados estaremos trabalhando, a primeira operação a ser efetuada em um TAD é a criação. Depois, podemos realizar inclusões e remoções de dados. A operação que varre todos os dados armazenados num TAD é o percurso, podendo também ser realizada uma busca por algum valor dentro da estrutura. Estrutura de Dados - Prof. Miguel Bonafe

  23. Estrutura de Dados • Tipos de dados

  24. Introdução | Tipos Instituto Federal Amazonas Tipos de Dados Numérico Literal Caractere Lógico Inteiro Real Estrutura de Dados - Prof. Miguel Bonafe

  25. INSTITUTO FEDERAL AMAZONAS Estrutura de Dados Prof. Miguel Bonafe miguelbonafe@hotmail.com

  26. Instituto Federal Amazonas Aula de hoje: Algoritmos Dificuldadesnaconstrução Complexidade Métodosparadiminuiçãodacomplexidade Referenciabibliografica: Estrutura de Dados e Algoritmos UmaAbordagemDidatica Celso Roberto Moraes Futura Estrutura de Dados - Prof. Miguel Bonafe

  27. Estrutura de Dados • Algoritmos

  28. Introdução | Algoritmos Instituto Federal Amazonas Pode ser definido como um conjunto de passos descritos sem ambiguidade, possuindo um início, que termine em um período de tempo finito e que apresente sempre o mesmo padrão de comportamento para conduzir-nos a uma solução adequada de um determinado problema. Estrutura de Dados - Prof. Miguel Bonafe

  29. Introdução | Algoritmos Instituto Federal Amazonas Podemosevidenciartrescaracteristicasimportantessobreosalgoritmos: É rigorosonasuadefinação Legibilidade Portabilidade Estrutura de Dados - Prof. Miguel Bonafe

  30. Introdução | Algoritmos Instituto Federal Amazonas A primeiracaracterísticaestáassociada à ausência de ambiguidade, ouseja, nãodevehaverduplainterpretação das suasinstruções. Esseobjetivopode ser atingido, se o algoritmousar um pequenoconjunto de significadoúnico, porém, podereso, no sentidoprinicipal de ser suficienteparaconstruirquaisqueralgoritmos. Estrutura de Dados - Prof. Miguel Bonafe

  31. Introdução | Algoritmos Instituto Federal Amazonas Dizerque o algortimoapresenta um bomnível de legibilidadesignificadizerque a forma darepresentaçãodasoluçãopropostapode ser facilmentecomunicadaparaoutraspessoasfazerem a avaliação e o uso do algoritmosugeridocomosoluçãopara um determinadoproblema. E paraisso é muitoimportante, porquepareceque as pessoastemdem a resolver muitosproblemassemelhantes. Porque, então, nãoaproveitar a solução a soluçãojáidentificadaporoutraspessoas? Estrutura de Dados - Prof. Miguel Bonafe

  32. Introdução | Algoritmos Instituto Federal Amazonas Finalmente, se um algoritmopossuiruma boa portabilidade, indicaqueelefoielaboradosemosmeandrosmuitasvezespresentesnaslinguagens de programação. Um algoritmoserámelhorquandopassarmos a considerarosaspectosrealmentesrelevantesdasolução, deixando de ladodetalhestécnicos de umaououtralinguagem de programação. A preocupaçãomaisdetalhada com osaspectostécnicos de umalinguagem de programaçãoteráseumomento de triunfoquando for realizada a implementação, ouseja, a codificação do algoritmo. Estrutura de Dados - Prof. Miguel Bonafe

  33. Estrutura de Dados • Dificuldadesnaconstrução de Algoritmos

  34. Introdução | Algoritmos Instituto Federal Amazonas Parecequeconstruiralgoritmos é umatarefa trivial. Issopode ser verdadeiro, se o problema a ser considerado for também trivial. Mas, emnossodia-a-dia, muitasvezesficamosfrente a frente com problemasnãotãotriviaisassim. Então, ondeestaria a dificuldadeemconstruiralgoritmos? Estrutura de Dados - Prof. Miguel Bonafe

  35. Introdução | Algoritmos Instituto Federal Amazonas A respostaestanacomplexidadequevaiaparecendoeminúmerassituações, quevãodesde o entendimento do cálculodaárea de umafigurageométricaqualquer, passandopelofuncionamento de um sistema de contas a pagar, ou, aindacomo se realiza o cálculo de área de umafunçãomatemáticausando a regra do trapézio, até o funcionamento do compartilhalmento do processadoroudamemória principal de um computadorem um ambientemultiusuário e multitarefas, Estrutura de Dados - Prof. Miguel Bonafe

  36. Introdução | Algoritmos Instituto Federal Amazonas com o objetivo de desenvolver um algoritmoqueescalone a utilizaçãodessesdoisrecursos de forma justa entre as dezenas, centenas de processosexistentes, e obtendo, aomesmo tempo, o máximo de eficiêncianessatarefa de escalonamento de uso do processador. A complexidade, paranósprogramadores, é encaradacomosinônimo de variedade, que, porsuavez, representa a quantidade de situaçõesdiferentesque um problemapodeapresentar as quaisdevem ser previstasnasuasolução. Estrutura de Dados - Prof. Miguel Bonafe

  37. Estrutura de Dados • Complexidade

  38. Introdução | Algoritmos Instituto Federal Amazonas Eliminarmostotalmente a complexidade, não é possível. Entretanto, podemosutilizaralgumastécnicasparaajudar-nos a dominar a complexidadepresentenosproblemas do nossomundo. Para isso, é necessárioquealgunspontosimportantessejamcompreendidos: “o quefazer?” versus “comofazer?”, além de legibilidade e portabilidade. Estrutura de Dados - Prof. Miguel Bonafe

  39. Introdução | Algoritmos Instituto Federal Amazonas O primeiropontorefere-se à necessidade de compreendermos o quedeve ser feito antes de pensarnamaneiracomo faze-lo. Muitasvezes, tentamosesboçarumasoluçãosemaomenosrealizarumaleituramaiscuidadosa do problema. Essapressapode, muitasvezes, levar-nos a adotarumaestratégia de solução (como se faz) bastanteequivocada. Podemos, com isso, pagar um alto preçopelaineficiênciaquaseintoleráveldasoluçãoobtida. Estrutura de Dados - Prof. Miguel Bonafe

  40. Introdução | Algoritmos Instituto Federal Amazonas Após o entendimentosobre o quedeve ser realizado, ouseja, depois de definirmosqual o produto final desejado, é o momento de pensarmoscomopoderemosdesenvolverumasoluçãoparaqueconsigamosobteresseprodutodesejado (resultado). Talvez um exemplo simples possaajudar a observar a diferença entre essesdoispontos. Estrutura de Dados - Prof. Miguel Bonafe

  41. Introdução | Algoritmos Instituto Federal Amazonas Para tanto, podemosconsiderar o seguinteproblema: f(x) = 4x2 + 5x + 10 Se pensarmos “o que” deve ser realizado, podemos responder que o objetivo é obter as raízesdessaequação de segundograu. A questão de “comofazer” poderia ser deixadapara um segundomomento, quandodefiniriamos a necessidade de calcular o valor do Delta, verificar se o seuresultado é maiorouigual a zero e, finalmente, realizar o cálculoefetivo das raízes no conjunto dos reaisou dos imaginários. Estrutura de Dados - Prof. Miguel Bonafe

  42. Introdução | Algoritmos Instituto Federal Amazonas A Legibilidade, comojádissemos, é a capacidade de outraspessoasentenderem com um mínimo de esforço a soluçãoindicadapara um problema. Percebemosque a questãoemdiscussãonesseponto é a comunicação. A estruturapormeiodaqual a soluçãofoidescritadevepermitirqueumapessoaentendaosprincipaispassosque, seguidos, conduzem à solução. O ultimo ponto, a portabilidade, implicadiretamente no alto grau de independenciadaestruturausadapara a construção do algoritmo das linguagens de programação. Estrutura de Dados - Prof. Miguel Bonafe

  43. Estrutura de Dados • Métodosparadiminuiçãodacomplexidade

  44. Introdução | Algoritmos Instituto Federal Amazonas Existemváriassugestões de métodosparaajudar-nos a diminuir e a dominar a complexidadequepodeaparecernosproblemas. Entre outros, podemoscitar: Dividirparaconquistar. Planejamentoreverso. Estrutura de Dados - Prof. Miguel Bonafe

  45. Introdução | Algoritmos Instituto Federal Amazonas Dividirparaconquistar: A primeirasugestão é usadadesdeos tempos do Imperador Julio Cesar, o todo-poderoso, nainvasão e conquista de novosterras. Antes de invadir um novo reino, o Imperadorprocuravaintroduzirespiõesqueprovocavampequenosconflitosinternos, visandoenfraquecer o reino a ser conquistado. Estrutura de Dados - Prof. Miguel Bonafe

  46. Introdução | Algoritmos Instituto Federal Amazonas Essespequenosconflitosprovocamnormalmente a ruptura do reino a ser invadido e conquistado, tornando, dessa forma, maisfácil a tarefaque antes pareciaimpossível. Essaidéia de invadirparaconquistar, no contextodaconstrução de algoritmos, consisteemdividir o problema original empartesmenorcomplexidade. Deve-se contudo, analizar a divisãoobtidaparagarantir a coerenciadessadivisão. Se alguma parte não for bemcompreendida, pode-se aplicar a elanovamente o método. Estrutura de Dados - Prof. Miguel Bonafe

  47. Introdução | Algoritmos Instituto Federal Amazonas Finalmente, analisar o objetoobtidoparagarantirentendimento e coerência de todas as partes. A decomposição do problema original apresentanormalmenteumaestrutura de suaspartesemuma forma hierárquica, como é apresentadoabaixo: Estrutura de Dados - Prof. Miguel Bonafe

  48. Introdução | Algoritmos Instituto Federal Amazonas P1 P2 P3 P4 P5 P6 P7 Estrutura de Dados - Prof. Miguel Bonafe

  49. Introdução | Algoritmos Instituto Federal Amazonas Os passosdescritosanteriormentepodem ser resumidospeloprincípiodenominadorefinamento top-down, e esseprincípio é a verdadeirachavepara a escrita de programasgrandes e complexosquefuncionam de forma adequada. O princípioimplica no adiamento das considerações de detalhes, masjamaisnasconsideraçõessobre a precisão e sobre o rigor nesseprocesso de refinamento, embusca do domíniodacomplexidade do problema original. Estrutura de Dados - Prof. Miguel Bonafe

  50. Introdução | Algoritmos Instituto Federal Amazonas Planejamentoreverso: elarecomenda a determinanação dos dados de saídas, ouseja, identificar o que é desejadocomoresultado. Definindoos dados de saídas, pode ser possível, de maneiraresersa, determinaroscomponentesqueformamos dados de entrada, assimcomotodas as etapas de transformaçõesdessesdadis de entrada, paraconseguirmos as saídasdesejadas. Estrutura de Dados - Prof. Miguel Bonafe

More Related