Números positivos ordenados



Documentos relacionados
Sumário. Armazenamento de dados. Tipos de dados dinâmicos. Exemplos. Vectores Vectores dinâmicos Dados dinamicos. Declaração Uso 10-1

Curso de C. Memória Dinâmica 17/05/ :33 1

Prof. Yandre Maldonado - 1 PONTEIROS. Prof. Yandre Maldonado e Gomes da Costa

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica

Introdução a POO. Introdução a Linguagem C++ e POO

Trabalho 3: Agenda de Tarefas

Estruturas de Dados. Alguns dados não costumam ser tão simples assim... Podem ser compostos por vários dados distintos

Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org

Programas operam sobre dados. Dados são relacionados e possuem estrutura. Como representar e manipular dados em um computador

INF1007: Programação 2 10 Árvores Binárias. (c) Dept. Informática - PUC-Rio 1

INF PROGRAMAÇÃO II LISTA DE EXERCÍCIOS 15

EAD Fila. - algumas operações realizam-se na frente/cabeça e outras na cauda da Fila

Busca. Pesquisa sequencial

EAD Árvore árvore binária

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador

Persistência de Dados

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

struct LISTA item quant

ALGORITMOS E ESTRUTURAS DE DADOS CES-11 CES-11 CES-11

Algoritmos e Programação _ Departamento de Informática

/*(Atenção: Em se tratando de uma lista estaticamente alocada, temos utilizado a estratégia de passa o tamanho máximo do vetor.)*/

ESTRUTURAS DE DADOS I. Notas de Aula. Prof. Dr. Gilberto Nakamiti

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

2ª Lista de Exercícios

Alocação dinâmica de memória

Tipos de Dados, Tipos Abstratos de Dados Estruturas de Dados

Algoritmos e Estrutura de Dados. Prof. Tiago A. E. Ferreira

Introdução. Manipulação de arquivos em C. Estrutura de Dados II Prof Jairo Francisco de Souza

Índice. Capítulo 2 Estrutura de Dados sequencial com armazenamento sequencial

Algoritmos e Programação

Filas. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Métodos Computacionais. Fila

INF 1007 Programação II

Estruturas de Dados Aula 15: Árvores 17/05/2011

Estruturas de Dados. Prof. Gustavo Willam Pereira Créditos: Profa. Juliana Pinheiro Campos

Algoritmos e Estruturas de Dados: Árvore Binária

Linguagem C: Árvores Binarias

Estrutura de Dados Pilha (Stack)

Métodos Computacionais. Árvores

DAS5102 Fundamentos da Estrutura da Informação

INF 1007 Programação II

INF 1007 Programação II

Estruturas de Dados. Parte dos slides a seguir são adaptações, extensões e traduções para C dos originais:

Introdução à Programação

Algoritmos e Programação Estruturada

Enunciados de exercícios seleccionados de testes e exames P2 / EDa

Estruturas de Dados I

Lista restrita onde as operações de inserção e retirada são feitas nas extremidades. Deque (fila de final duplo).

Primeiro Curso de Programação em C 3 a Edição

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

10. Listas Encadeadas

PIP/CA - Programa Interdisciplinar de Pós-Graduação em Computação Aplicada da UNISINOS ALGORITMOS & ESTRUTURAS DE DADOS

Introdução. A verificação de tipos pode ser estática e dinâmica

Programação: Tipos, Variáveis e Expressões

Programa ConsoleRPN. PUC-Rio CIV Sistemas Gráficos para Engenharia Luiz Fernando Martha & André Maués Brabo Pereira

INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

Tipo de Dados em Linguagem C

Estruturas (Registros)

Listas (Parte 2) Túlio Toffolo BCC202 Aula 10 Algoritmos e Estruturas de Dados I

BUSCA EM LISTAS LISTAS SEQÜENCIAIS, LISTAS SIMPLESMENTE E DUPLAMENTE ENCADEADAS E LISTAS CIRCULARES

Árvores Binárias de Busca

Figura 13.1: Um exemplo de árvore de diretório.

Algoritmos e Estruturas de dados

Pesquisa em Memória Primária. Prof. Jonas Potros

Programação Estruturada I

A Pilha. Aula 02. DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria

Estruturas de Dados Aula 11: TAD Pilha 09/05/2011

Aula 3 Alocação Dinâmica

Algoritmos e Estruturas de Dados

Hashing (Tabela de Dispersão)

PROGRAMAÇÃO II 3. PILHA DINÂMICA

Pesquisa Sequencial e Binária

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

Alocação Estática e Dinâmica. Prof. M.Sc. Mariella Berger

Estrutura de Dados Básica

PL/SQL. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados PL/SQL

Manipulação de Arquivos

7. ESTRUTURAS DE DADOS ESTÁTICAS E DINÂMICAS

ESTRUTURAS DE DADOS AVANÇADAS (INF 1010) (a) Seja um TAD definido por uma lista circular implementada em um vetor.

Árvore Binária de Busca

Arquivos. Estruturas de Dados II Vanessa Braganholo

A linguagem C permite dois tipos de alocação de memória: Alocação estática e alocação dinâmica.

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Pesquisa em Memória Primária. Algoritmos e Estruturas de Dados II

Árvores Binárias de Busca

DEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA

Transcrição:

Sumário Armazenamento de dados Vectores Vectores dinâmicos Listas Tipos de dados dinâmicos Declaração Uso Exemplos Armazenamento de dados Tamanho conhecido antes compilação Vectores BI vect[200] Tamanho conhecido durante a execução Vectores dinâmicos BI * vect; Vect = (BI *) calloc (n, sizeof(bi)) 10-1 10-2 Armazenamento de dados E se comprimento variar? E se quisermos inserir ordenado? E se quisermos remover? E se o vector estiver cheio? Inserir 10 Complexo com vectores dinâmicos Solução Tipos dinâmicos 10-3 10-4 Inserir 12 10-5 10-6

10-7 10-8 10-9 10-10 E se estiver cheio? Se criado com calloc Redimensionamento do vector Senão 10-11 10-12

Memória Dinâmica Variáveis locais Existentes apenas dentro de uma função Acessíveis a partir dessa função Memória dinâmica Dados existem Entre criação e destruição Acessíveis por várias funções Evita sobredimensão dos vectores sizeof Retorna o número de bytes ocupados por uma variável dum tipo sizeof(char) 1 sizeof(int) 4 sizeof(char *) 4 sizeof(int *) 4 sizeof(bi *) 4 sizeof(bi) muitos 10-13 10-14 Inserir 10 Inserir 12 10-15 10-16 10-17 10-18

Fim 10-19 Declaração O tipo (estrutura) inclui Campo com os dados Campo com referência para outra estrutura (do mesmo tipo) struct dim_st{ tipodados x; struct dim_st *seg; } typedef struct dim_st dinamic; typedef struct dim_st{ tipodados x; struct dim_st *seg; }dinamic; 10-20 Declaração Declaração inválida linha 3: ainda não sabemos o que é dinamic 1. typedef struct dim_st{ 2. tipodados x; 3. dinamic *seg; 4. }dinamic; Criação Uma caixinha para cada valor Função malloc Semelhante ao calloc Mas só cria uma estrutura Novo = (tipo *) malloc (sizeof(tipo)); Pode retornar NULL se houver erro if (Novo == NULL) 10-21 10-22 Pilha Fila Lista Tipos dinâmicos NULL 10-23 Tipos dinâmicos/abstractos Operações Cria_nova Insere Remove Procura (só a lista) Cimo (só pilha) Primeiro (só fila) 10-24

Decisões Pilha O que é uma XXXX vazia Onde termina uma XXXX terminador Qual a ordem das setas Como se insere No início? No fim? No meio? Ordenado crescente Ordenado decrescente Usos Arrumar coisas :) Calculador RPN Inverter ordem de coisas Operação Inserir No cimo Retirar O último a entrar 10-25 10-26 Inserir Inserir(p1, 12) Onde? p1 Pilha NULL?? Gestão de memória Os blocos criados (calloc ou malloc) Devem ser sempre acessíveis Se não acessíveis são lixo Devem ser destruídos com o free char * ptr; ptr = (char *) malloc(sizeof(char));... free(ptr); 10-27 10-28