Estrutura de Dados - Alocação Estática

Embed Size (px)

Citation preview

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    1/57

    Estruturade Dados

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    2/57

    Introdução● O que são estruturas de dados?

    ● Em Ciência da computação, uma estrutura de dados é ummodo particular de armazenamento e organização de dadosem um computador de modo que possam ser usados de modo

    eficiente – Benef cios?

    ● Organização da informação● !el"ora o desempen"o● #roporciona o reuso de c$digo● #roporciona interopera%ilidade● Diminui custos

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    3/57

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    4/57

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    5/57

    O%&eti'os (erais● Introduzir conceitos referentes ) utilização de

    estruturas de dados em pro%lemas en'ol'idosna programação, familiarizando os alunos comas principais estruturas de dados, e suascorrespondentes a%straç*es+

    ● inal da aula o aluno poder- pro&etar eimplementar di'ersas estruturas de dados,con"ecendo suas 'antagens e des'antagens+

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    6/57

    O%ser'ação● .esta aula são apresentadas algumas

    estruturas de dados, com ênfase naquelas quesão utilizadas no decorrer da aula+ /ssim,

    algumas estruturas de import0ncia para outrostipos de aplicaç*es como a representação de-r'ores, grafos e matrizes esparsas,fundamental para a -rea de computação

    cient fica 11 não estão descritas aqui+

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    7/57

    #rincipais tipos de estruturas de dados

    ● 2ista● ila● #il"a● 3r'ores● (rafos●

    4a%ela 5as"ing● Etc+

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    8/57

    /plicaç*es● Estruturas de dados são muito utilizadas em

    aplicaç*es de n 'el mais %ai6o, tais como7 – Implementação de estruturas de %anco de dados –

    Compiladores e interpretadores – Editores de te6to – 8ernel de sistemas operacionais – 9edes de computadores – I/ – Etc+

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    9/57

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    10/57

    Definição● :ma estrutura do tipo 2ista é uma sequência

    de elementos do mesmo tipo+● ;eus elementos possuem estrutura interna

    a%stra da, ou se&a, sua comple6idade éa%stra da e não afeta o seu funcionamento+

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    11/57

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    12/57

    Definição● Em uma 2ista podemos realizar as seguintes operaç*es %-sica7

    ● Criação da 2istaA● Inserção de um elementoA● E6clusão de um elementoA● /cesso a um elementoA● Destruição da listaA● Etc+

    ● Essas operaç*es dependem do tipo de alocação de mem$riausada

    Est-ticaA – Din0mica

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    13/57

    /locação Est-tica● O espaço de mem$ria é alocado no momento da

    compilação● E6ige a definição do n mero m-6imo de elementos da

    2ista● /cesso sequencial7 elementos consecuti'os na

    mem$ria

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    14/57

    /locação Din0mica● Espaço de mem$ria é alocado em tempo de e6ecução● / 2ista cresce ) medida que no'os elementos são

    armazenados, e diminui ) medida que elementos sãoremo'idos

    ● /cesso encadeado7 cada elemento pode estar em uma -readistinta da mem$ria+ #ara acessar um elemento, é precisotodos os seus antecessores na 2ista+

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    15/57

    2ista ;equencial 2inear Est-tica● um tipo de 2ista onde o sucessor de um

    elemento ocupa a posição f sica seguinte domesmo

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    16/57

    Fantagens do uso de /rra s● /cesso r-pido e direto aos elementos < ndice@● 4empo constante para acessar um elemento● acilidade em modificar informaç*es

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    17/57

    Des'antagens do uso de /rra s● Definição pre'ia do taman"o do arra● Dificuldade para inserir e remo'er um elemento

    entre outros dois7 é necess-rios deslocar os

    elementos

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    18/57

    Guando utilizar essa 2ista?● 2istas pequenas● Inserção remoção apenas no final da 2ista● 4aman"o m-6imo %em definido● / %usca é a operação mais frequente

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    19/57

    Implementação de 2ista – Criar uma lista – Destruir uma lista

    ● /lgumas informaç*es %-sica so%re 2ista7● 4aman"o?● Est- c"eia?● Est- 'azia?

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    20/57

    Inserção na 2ista● E6istem H tipos de inserção7

    ● In cio● !eio● final

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    21/57

    Inserção na 2ista● 4am%ém e6iste o caso onde a inserção é feita

    em uma lista que est- 'azia+● Cuidado7 não se pode inserir numa lista 'azia

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    22/57

    Inserção no final da 2ista● !ais f-cil

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    23/57

    Inserção no in cio● .ecessita de deslocamento+

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    24/57

    Inserção de forma Ordenada● 4al'ez se&a necess-rio deslocar os elementos+

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    25/57

    9emoção na 2ista● E6istem H tipos de remoção7

    ● In cio● !eio● inal

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    26/57

    9emoção no In cio● Desloca todos os elementos posteriores+

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    27/57

    9emoção em qualquer lugar● 4al'ez desloque os elementos

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    28/57

    9emoção no inal● !as facil+

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    29/57

    Importante● Os H tipos de remoção tra%al"am &untos+ / remoção

    sempre remo'e um elemento espec fico da lista, oqual pode estar no in cio, no meio ou no final da lista

    ● Cuidado7 não se pode remo'er de uma lista 'azia

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    30/57

    Consulta na 2ista● E6istem maneiras de consultar um elemento

    de uma lista7● #ela posição

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    31/57

    ila

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    32/57

    Definição● :ma estrutura do tipo ila é uma sequencia de elementos

    do mesmo tipo, como as listas+● ;eus elementos possuem estrutura interna a%stra da, ou

    se&a, sua comple6idade é a%stra da e não afeta o seu

    funcionamento+

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    33/57

    Definição● :ma ila é um tipo especial de 2ista● Inserç*es e e6clus*es de elementos ocorrem

    nas e6tremidades da lista+● /plicaç*es7

    ● Controle de flu6oA● 9ecursos compartil"ados

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    34/57

    Definição● Em uma ila podemos realizar as seguintes operaç*es %-sica7

    ● Criação da filaA● Inserção de um elemento no finalA● 9emoção de um elemento no in cioA● /cesso a um elemento no in cioA●

    Destruição da filaA● Etc+

    ● Essas operaç*es dependem do tipo de alocação de mem$riausada – Est-ticaA – Din0mica

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    35/57

    /locação Est-tica● O espaço de mem$ria é alocado no

    momento da compilação● E6ige a definição do n mero m-6imo de

    elementos da ila● /cesso sequencial7 elementos

    consecuti'os na mem$ria

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    36/57

    /locação Din0mica● Espaço de mem$ria é alocado em tempo de

    e6ecução● / ila cresce ) medida que no'os elementos são

    armazenados, e diminui ) medida queelementos são remo'idos● /cesso encadeado7 cada elemento pode estar

    em uma -rea distinta da mem$ria+ #ara acessarum elemento, é preciso todos os seusantecessores na ila+

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    37/57

    ila Est-tica● 4ipo de ila onde o sucessor de um elemento

    ocupa a posição f sica seguinte do mesmo

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    38/57

    Implementação de ila – Criar uma fila – Destruir uma fila

    ● /lgumas informaç*es %-sica so%re fila7●

    4aman"o?● Est- c"eia?● Est- 'azia?

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    39/57

    Inserção na ila● Em uma ila a inserção é sempre no final● 4am%ém e6iste o caso onde a inserção é feita

    em uma fila que est- 'azia● Cuidado7 não se pode inserir numa fila c"eia

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    40/57

    Inserção na ila

    ã l

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    41/57

    9emoção na ila● Em uma ila a remoção é sempre no in cio● Cuidado7 não se pode remo'er de uma fila

    'azia

    9 ã il

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    42/57

    9emoção na ila

    C l il

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    43/57

    Consulta na ila● Em uma ila a consulta se d- apenas ao

    elemento que est- no in cio+

    C l il

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    44/57

    Consulta na ila

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    45/57

    #il"a

    D fi i ã

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    46/57

    Definição● :ma estrutura do tipo #il"a é uma sequencia deelementos do mesmo tipo, como as listas e filas+● ;eus elementos possuem estrutura interna a%stra da, ou

    se&a, sua comple6idade é a%stra da e não afeta o seu

    funcionamento+

    D fi i ã

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    47/57

    Definição● :ma #il"a é um tipo especial de 2ista● Inserç*es e e6clus*es de elementos ocorrem

    apenas no in cio da lista+● /plicaç*es7

    ● /nalise de uma e6pressão matem-ticaA● /'aliação de e6pressão p$s1fi6aA● Con'erter uma e6pressão in1fi6a para p$s1fi6aA● Con'erter um n mero decimal para %in-rio● Etc+

    Definição

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    48/57

    Definição● Em uma #il"a podemos realizar as seguintes operaç*es%-sica7

    ● Criação da pil"aA● Inserção de um elemento no in cioA● E6clusão de um elemento do in cioA● /cesso a um elemento do in cioA● Destruição da filaA

    ● Essas operaç*es dependem do tipo de alocação demem$ria usada

    – Est-ticaA – Din0mica

    /locação Est tica

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    49/57

    /locação Est-tica● O espaço de mem$ria é alocado no

    momento da compilação● E6ige a definição do n mero m-6imo de

    elementos da #il"a● /cesso sequencial7 elementos

    consecuti'os na mem$ria

    /locação Din0mica

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    50/57

    /locação Din0mica●

    Espaço de mem$ria é alocado em tempo dee6ecução● / #il"a cresce ) medida que no'os elementos

    são armazenados, e diminui ) medida queelementos são remo'idos

    ● /cesso encadeado7 cada elemento pode estarem uma -rea distinta da mem$ria+ #ara acessar

    um elemento, é preciso todos os seusantecessores na ila+

    Implementação de #il"a

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    51/57

    Implementação de #il a

    – Criar uma pil"a – Destruir uma pil"a

    ● /lgumas informaç*es %-sica so%re pil"a7●

    4aman"o?● Est- c"eia?● Est- 'azia?

    Inserção na #il"a

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    52/57

    Inserção na #il a● Em uma #il"a a inserção é sempre no seu in cio● 4am%ém e6iste o caso onde a inserção é feita em uma

    pil"a que est- 'azia+● Cuidado7 não se pode inserir em uma pil"a c"eia

    9emoção na #il"a

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    53/57

    9emoção na #il a● Em uma #il"a a remoção é sempre no seuinicio+● Cuidado7 não se pode remo'er de uma pil"a

    'azia+

    Consulta na #il"a

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    54/57

    Consulta na #il a● Em uma #il"a a consulta se d- apenas aoelemento que est- no seu in cio+

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    55/57

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    56/57

    9eferência Bi%liogr-fica

  • 8/16/2019 Estrutura de Dados - Alocação Estática

    57/57

    9eferência Bi%liogr fica●

    Cormen, 4"omas 5+ et+ al+ /lgoritmos7 4eoria e #r-tica+ EditoraCampus, +● Ji'iani, .i'io+ #ro&eto de /lgoritmos+ Editora .o'a ronteira, K+● ;edgeLicM, 9o%ert+ /lgorit"ms in CNN+ /ddison esle , +● !an%er, :di+ Introduction to /lgorit"ms7 / Creati'e /pproac"+ /ddison

    esle , PQRQ+● ;edgeLicM, 9o%ert+ and la&olet, #"ilippe+ /n Introduction to t"e

    /nal sis of /lgorit"ms+ /ddison esle , PQQS+● "ttps7 programacaodescomplicada+Lordpress+com indice estrutura1de1

    dados● "ttp7 pt+slides"are+net fa%riciolopessanc"ez estrutura1de1dados1

    conceitos1fundamentais