·

Análise e Desenvolvimento de Sistemas ·

Estrutura de Dados

Envie sua pergunta para a IA e receba a resposta na hora

Fazer Pergunta

Texto de pré-visualização

Linguagens de programação e estrutura de dados Linguagens de programação e estruturas de dados Gisele Alves Santana Nathalia dos Santos Silva Merris Mozer 2018 por Editora e Distribuidora Educacional SA Todos os direitos reservados Nenhuma parte desta publicação poderá ser reproduzida ou transmitida de qualquer modo ou por qualquer outro meio eletrônico ou mecânico incluindo fotocopia gravação ou qualquer outro tipo de sistema de armazenamento e transmissão de informação sem prévia autorização por escrito da Editora e Distribuidora Educacional SA Presidente Rodrigo Galindo VicePresidente Acadêmico de Graduação Mario Ghio Junior Conselho Acadêmico Alberto S Santana Ana Lucia Jankovich Baruch Camila Cardoso Rotelli Danielly Nunes Andrade Noel Graciele Aparecida Lourenço Isabel Cristina Chagas Barbin Lidiane Cristina Vivaldini Olo Thiatiane Cristina dos Santos de Carvalho Ribeiro Revisora Técnica Marcio Aparecido Artero Editorial Adilson Braga Fontes André Augusto de Andrade Ramos Leticia Bento Peroni Lidiane Cristina Vivaldini Olo Dados Internacionais de Catalogação na Publicação CIP Santana Gisele Alves S231 Linguagens de programação e estruturas de dados Gisele Alves Santana Nathalia dos Santos Silva Merris Mozer Londrina Editora e Distribuidora Educacional SA 2018 160 p ISBN 9788552203148 1 Linguagem de programação 2 Tipos abstratos de dados I Silva Nathália dos Santos II Mozer Merris II Título CDD 001 6424 2018 Editora e Distribuidora Educacional SA Avenida Paris 675 Parque Residencial João Riza CEP 86041100 Londrina PR email editoriaeducacionalkrotoncombr Homepage httpwwwkrotoncombr Sumário Unidade 1 Algoritmos e seus tipos de representação e estrutura de dados 7 Seção 1 Tipos abstratos de dados e funções 10 11 Introdução à Estrutura de Dados 10 12 Estrutura de Dados no Dia a dia 12 13 Funções 16 131 Funcionamento 16 132 Sintaxe 16 133 Chamando as Funções 17 134 Protótipos de Funções 18 135 Comando Return 18 136 Variáveis locais e globais 21 137 Parâmetros das funções 21 138 Passagem por Valor 22 139 Passagem por Referência 23 Seção 2 Técnicas de programação para a implementação de estruturas de dados 26 21 Ponteiros 26 211 Operador de endereço 27 212 Declaração de Ponteiros 27 213 Inicialização de Ponteiros 29 214 Impressão de Ponteiros 30 22 Alocação dinâmica de memória 31 23 Registros 32 231 Declaração de um Registro 32 232 Registros e Ponteiros 33 24 Recursividade 34 Unidade 2 Tipos e estruturas de dados 43 Seção 1 Vetores 47 11 Sintaxe para declaração de Vetores 47 12 Sintaxe para acessar elementos do vetor 49 13 Sintaxe com laços para percorrer o vetor 50 Seção 2 Matrizes 55 21 Sintaxe para declaração de matrizes 55 22 Sintaxe para manipulação de matrizes 55 Seção 3 Tipos de Dados 58 31 Tipos de Dados Abstratos 58 32 Tipos Compostos de Dados 59 33 Tipos de dados Heterogêneos 63 Unidade 3 Estruturas de dados 71 Seção 1 Alocação dinâmica de memória 74 Seção 2 Listas e seus casos específicos pilha e fila 79 Seção 3 Algoritmos de pesquisa 92 Seção 4 Classificação 101 Unidade 4 Árvores e grafos 111 Seção 1 Tipos abstratos de dados e funções 114 41 Grafos 114 411 Notação Formal 116 412 Arcos 116 413 Tipos de Grafos 117 414 Grafo de um Vértice 118 415 Ciclo 119 416 Componentes Conectados 120 417 Portos de Articulação 120 42 Árvores 121 421 Árvore Binária 125 422 Árvore Estritamente Binária 126 423 Árvore Binária Cheia 126 424 Árvore Binária Balanceada AVL 127 425 Árvore Binária Completa 127 Seção 2 Árvore binária de busca 129 43 Árvore Binária de Busca 129 44 Implementação Estática de uma Árvore Binária de Busca 131 45 Definição de um nó 131 46 Inicialização 131 47 Inserção de um Nó 138 48 Criação de uma Árvore 138 49 Verificação de uma Árvore Vazia 139 410 Liberação de Memória 140 411 Exclusão de Nós 141 412 Percursos 143 4121 Percurso PréOrdem E R D 144 4122 Percurso InOrdem E R D 144 4123 Percurso PósOrdem E D R 145 4124 Percurso em Nível 146 Apresentação Olá aluno seja bemvindo A estrutura de dados é muito utilizada em diversas áreas para a resolução de problemas computacionais A maneira de organização dos dados afeta diretamente a eficiência de um algoritmo Dessa forma dados que possuem melhor organização tendem a prover maior eficiência e rapidez aos algoritmos que manipulam esses dados Para o entendimento das estruturas é necessário que você se lembre principalmente do conceito de algoritmos assim como conheça os tipos de dados mais utilizados para a implementação de programas Neste livro a Linguagem C é adotada para a implementação das estruturas de dados por possuir alta flexibilidade e portabilidade Na Unidade 1 você será levado a entender a importância da estrutura de dados assim como os principais tipos de estruturas utilizadas para a organização dessas informações a aprender o que são funções compreendendo a diferença entre passagem por valor e passagem por referência a estudar sobre ponteiros que são amplamente utilizados para a alocação dinâmica de memória assim como compreender a utilização de registros para o armazenamento de informações que possuem dados de tipos diferentes Para concluir esta unidade você aprenderá o conceito de recursividade que é utilizada principalmente para a resolução de problemas matemáticos mais complexos A Unidade 2 apresenta os tipos de dados pertinentes ao desenvolvimento de sistemas computacionais assim como suas características para que você possa tomar boas decisões quanto à escolha e definição da estrutura de dados a ser utilizada em seus projetos Você irá aprender sobre os tipos de dados que podem ser implementados na linguagem C incluindo comandos funções e a sintaxe dessas implementações Ao conhecer os tipos de dados abstratos e compostos homogêneos e heterogêneos você será capaz de criar estruturas adequadas para os seus programas O foco da Unidade 3 são as listas lineares e seus tipos principais pilha e fila Você irá entender a lógica utilizada para a implementação dessas estruturas de dados utilizando técnicas de programação como ponteiros e alocação dinâmica de memória para sua implementação Você também irá conhecer os principais tipos de algoritmos para a pesquisa em estrutura de dados bem como conceitos relacionados à classificação ou ordenação de elementos em uma estrutura Na Unidade 4 você aprenderá sobre dois tipos de estruturas de dados muito utilizados na área da computação grafos e árvores O foco está concentrado nas árvores binárias de busca Dessa maneira você irá conhecer as maneiras para a implementação desse tipo de árvore assim como exemplos simulações envolvendo os operações mais importantes e trechos de código na Linguagem C que implementam essas operações Para finalizar será definido o conceito de percurso ou travessia de uma árvore binária de busca apresentando e ilustrando quatro tipos de percursos Além de todos os conceitos e exemplos apresentados neste livro o material de estudos ainda contribuirá para que você possa treinar os conhecimentos adquiridos por meio da realização de exercícios orientados Desejamos a você bons estudos e dedicação para a conclusão desta etapa Algoritmos e seus tipos de representação e estrutura de dados Gisele Alves Santana Objetivos de aprendizado Nesta unidade você será levadoa a entender a importância da estrutura de dados assim como os principais tipos de estruturas utilizadas para a sua organização Dentro os principais objetivos desta unidade estão Aprender o que são funções conceito praticamente indispensável para a implementação de estruturas de dados por meio da diferença entre passagem por valor e passagem por referência Estudar sobre ponteiros que são amplamente utilizados para a alocação dinâmica de memória Compreender a utilização de registros para o armazenamento de informações que possuem dados de diferentes tipos Aprender o conceito de recursividade que é utilizada principalmente para a resolução de problemas matemáticos mais complexos Seção 1 Tipos abstratos de dados e funções Nesta seção você estudará os principais conceitos relacionados às Estruturas de Dados conhecendo seus tipos mais importantes e associandoos a situações do seu cotidiano entenderá o conceito de funções por meio de sua sintaxe seus comandos básicos as diferenças entre os tipos de passagem de parâmetros além de vários exemplos na Linguagem C de aplicação de funções Seção 2 Técnicas de programação para a implementação de estruturas de dados Nesta seção você vai aprender sobre ponteiros que possuem como conteúdo o endereço de memória de outra variável ser apresentadoa à alocação dinâmica de memória por meio de demonstrações de funções para a alocação e liberação de memória de um computador estudar os registros que possuem a capacidade de armazenar coleções de dados de diferentes tipos e por fim aprender sobre a recursividade destacada como uma ferramenta de programação muito poderosa na resolução de problemas computacionais complexos