Algoritmos e Estruturas de Dados I
|
|
|
- Inês Câmara Alcântara
- 9 Há anos
- Visualizações:
Transcrição
1 Algoritmos e Estruturas de Dados I Prof. Daniel M. Martin ([email protected]) Aula 6
2 Modularização Método que consiste em organizar programas grandes em pequenas partes (módulos) Cada módulo tem uma interface bem definida Em C é feita por meio de um arquivo.h Possui as estruturas (structs) utilizadas Possui cabeçalho (declaração) de funções Cada módulo tem uma implementação Em C é feita por meio de um arquivo.c
3 Vantagens da modularização: Módulos podem ser reusados em vários projetos Mudar a implementação de um módulo não afeta o programa principal (desde que a interface não mude) Mais rápido de recompilar o projeto quando apenas um módulo (ou apenas o programa principal) for modificado Mais fácil de debugar (você pode testar cada módulo separadamente)
4 Modularização em C main.c compilador executável Interface: modulo1.h Implementação: modulo1.c Interface: modulo2.h Implementação: modulo2.c
5 Lista Ligada Interface Deve conter as estruturas: typedef struct s_no *p_no; struct s_no { item dado; p_no prox; }; Deve conter as funções: p_no cria_no(item a); void libera(p_no x); void insere_inicio(p_no *pl, p_no y); p_no remove_inicio(p_no *pl); p_no busca(p_no L, item a);
6 Item Interface Deve conter a declaração de tipo: typedef int item;
7 Interface: item.h #ifndef ARQUIVO_ITEM_H #define ARQUIVO_ITEM_H typedef int item; #endif
8 Interface: lista.h #include "item.h" #ifndef ARQUIVO_LISTA_H #define ARQUIVO_LISTA_H typedef struct s_no *p_no; struct s_no { item dado; p_no prox; };
9 Interface: lista.h (cont.) p_no cria_no(item a); void libera(p_no x); void insere_inicio(p_no *pl, p_no y); p_no remove_inicio(p_no *pl); p_no busca(p_no L, item a); #endif
10 Implementação: lista.c #include <stdio.h> #include <stdlib.h> #include "item.h" #include "lista.h" void insere_inicio(p_no *pl, p_no y) { y->prox = *pl; *pl = y; } void libera(p_no x) { if (x!= NULL) free(x); }
11 Implementação: lista.c (cont.) p_no cria_no(item a) { p_no x = (p_no) malloc(sizeof(struct s_no)); if (x == NULL) { printf("memória insuficiente.\n"); exit(exit_failure); } x->dado = a; } return x;
12 Implementação: lista.c (cont.) p_no remove_inicio(p_no *pl) { p_no x = *pl; if (*pl!= NULL) *pl = (*pl)->prox; } return x;
13 Implementação: lista.c (cont.) p_no busca(p_no L, item a) { p_no t; for (t = L; t!= NULL; t = t->prox) if (t->dado == a) return t; } return NULL;
14 Implementação: main.c #include <stdio.h> #include <stdlib.h> #include "item.h" #include "lista.h" int main() { p_no t, L = NULL, x, y, z; x = cria_no(20); y = cria_no(17); z = cria_no(23);
15 Implementação: main.c (cont.) insere_inicio(&l, x); insere_inicio(&l, y); insere_inicio(&l, z); for (t = L; t!= NULL; t = t->prox) printf("%d ", t->dado); } printf("\n"); libera(x); libera(y); libera(z); return 0;
16 Compilando e excutando o código Num terminal linux faça: gcc lista.c main.c -o proglistas./proglistas Usando o Code::Blocks ou o Dev C++ faça: Adicione no projeto todos os arquivos.h Adicione no projeto todos os arquivos.c Compile e execute normalmente
17 Listas Ligadas Uso de Memória Chamar malloc para criar cada nó é lento Alternativa: manter uma lista ligada de nós "livres" ou disponíveis A mudança na interface lista.h é acrescentar void inicializa_lista(int n); O programa principal main.c deve chamar inicializa_lista(10); antes de chamar a função cria_no(...);
18 Implementação: lista.c A implementação lista.c também cresce: p_no disp; void inicializa_lista(int n) { disp = (p_no) malloc(n * sizeof(struct s_no)); if (disp == NULL) { /* testa falha */ } for (i = 0; i < n; i ++) disp[i].prox = &disp[i + 1]; } disp[n - 1].prox = NULL;
19 Implementação: lista.c p_no cria_no(item a) { p_no t = disp; disp = disp->prox; t->dado = a; return t; } void libera(p_no x) { x->next = disp; disp = x; }
20 Simulação p_no x, y, L = NULL; inicializa_lista(7); x = cria_no(20); y = cria_no(17); insere_inicio(&l, x); insere_inicio(&l, y); libera(x); libera(y);
21 Listas Circulares São listas ligadas onde o último elemento não aponta para NULL, mas aponta de volta para o primeiro elemento da lista. Se a lista tem um único elemento, o campo prox dele deve apontar para si mesmo.
22 Listas Circulares Operações primeira inserção de um nó t na lista: L = t; L->prox = L; demais inserções: t->prox = L->prox; L->prox = t; percorrer a lista: t = L; do {... t = t->prox;} while (t!= L); remover L->prox da lista: if (L!= NULL && L->prox!= L) L->prox = L->prox->prox; else L = NULL;
23 Listas Duplamente Ligadas São listas que possuem, além do ponteiro para o próximo nó, um ponteiro para o nó anterior Ocupam mais memória, mas dependendo da aplicação permite a utilização de algoritmos mais rápidos
24 Listas Duplamente Ligadas São listas que possuem, além do ponteiro para o próximo nó, um ponteiro para o nó anterior Ocupam mais memória, mas dependendo da aplicação permite a utilização de algoritmos mais rápidos NULL L NULL
25 Filas
26 Filas Seqüência dinâmica de objetos Todos os objetos são do mesmo tipo (assim como nos vetores e listas ligadas) O que caracteriza a fila é a ordem de remoção dos elementos: Se algum elemento é removido, deve ser aquele que está na fila a mais tempo
27 Filas Seqüência dinâmica de objetos Todos os objetos são do mesmo tipo (assim como nos vetores e listas ligadas) O que caracteriza a fila é a ordem de remoção dos elementos: Se algum elemento é removido, deve ser aquele que está na fila a mais tempo FIFO first-in first-out o primeiro elemento a entrar numa fila é também o primeiro a sair
28 Como implementar uma fila? Se você sabe que não mais do que n elementos serão inseridos (e removidos) da fila, você pode usar um vetor v de n elementos Dois inteiros in e fn podem ser usados para indicar o início e o final da fila in fn
29 Simulação (na lousa) aloca v com espaço para 10 elementos insere 23 insere 18 remove insere 13 insere 34 remove insere 55
30 Outra implementação de fila Se você sabe que, em qualquer instante durante a execução do programa, a fila não tem mais que n elementos (embora o número de inserções possa ser muito maior que n), então você pode usar um vetor circular v com n posições
31 Outra implementação de fila Se você sabe que, em qualquer instante durante a execução do programa, a fila não tem mais que n elementos (embora o número de inserções possa ser muito maior que n), então você pode usar um vetor circular v com n posições Como assim? Vetor circular?
32 Implementação com vetor circular Aloca um vetor v com capacidade para n + 1 elementos Usa in e fn como feito antes Trata v como um vetor circular, ou seja etc... v[n + 1] = v[0] v[n + 1] = v[1]
33 Implementação com vetor circular in fn
34 Simulação (na lousa) aloca v[10] insere 23 insere 18 remove insere 13 insere 34 remove insere 55 insere 78 insere 41 remove remove insere 16 insere 12 insere 98 insere 45 remove remove insere 5 insere 37
35 Interface: fila.h #include "item.h" #ifndef ARQUIVO_FILA_H #define ARQUIVO_FILA_H struct s_fila { int N; // capacidade da fila + 1 item *v; // vetor circular de itens int in, fn; }; typedef struct s_fila *p_fila;
36 Interface: fila.h (cont.) void inicializa_fila(p_fila F, int n); int fila_vazia(p_fila F); void enfileira(p_fila F, item a); item desenfileira(p_fila F); #endif
37 Implementação: fila.c #include <stdio.h> #include <stdlib.h> #include "item.h" #include "fila.h" int fila_vazia(p_fila F) { return F->in % F->N == F->fn; }
38 Implementação: fila.c (cont.) void inicializa_fila(p_fila F, int n) { F->v = (item *) malloc((n + 1) * sizeof(item)); if (F->v == NULL) { /* testa falha */} } F->N = n + 1; F->in = F->N; F->fn = 0; // pode ser 0 também
39 Implementação: fila.c (cont.) void enfileira(p_fila F, item a) { F->v[F->fn ++] = a; F->fn %= F->N; } item desenfileira(p_fila F) { F->in %= F->N; return F->v[F->in ++]; }
40 Outra implementação de fila Se o tamanho de uma fila pode crescer indefinidamente, você pode usar uma lista ligada para implementar uma fila Mas como?
41 Outra implementação de fila Se o tamanho de uma fila pode crescer indefinidamente, você pode usar uma lista ligada para implementar uma fila Mas como? Usando uma lista duplamente ligada?
42 Outra implementação de fila Se o tamanho de uma fila pode crescer indefinidamente, você pode usar uma lista ligada para implementar uma fila Mas como? Usando uma lista duplamente ligada? NÃO PRECISA!!!
43 Outra implementação de fila Matenho um ponteiro il para o primeiro nó da lista e um nó fl para o último nó da lista. No início: il = fl = NULL;
44 Outra implementação de fila Matenho um ponteiro il para o primeiro nó da lista e um nó fl para o último nó da lista. No início: il = fl = NULL; Para inserir item a numa fila vazia faça: il = fl = cria_no(a); Para demais inserções faça: fl->prox = cria_no(a); fl = fl->prox; Para remover um item faça: y = il; il = il->prox; // devolve y
45 Aplicação de Fila Calcular a distância entre pessoas no Facebook
46 Aplicação de Fila Calcular a distância entre pessoas no Facebook Amanda Paul
Algoritmos e Estruturas de Dados I
Algoritmos e Estruturas de Dados I Prof. Daniel M. Martin ([email protected]) Aula 8 Aplicação de Fila Calcular a distância entre pessoas no Facebook Aplicação de Fila Calcular a distância entre
A regra de acesso aos dados de uma fila é a seguinte: O primeiro elemento que entra (na fila) é o primeiro que sai (FIFO first in, first out).
Fila Algumas aplicações impõem regras de acesso às informações armazenados em estruturas de dados, restringindo como os dados são inseridos e removidos da estrutura. A fila, também conhecida como QUEUE,
1. Listas sequenciais versus listas ligadas. Lista sequencial
Alocação Dinâmica Listas Ligadas 1. Listas sequenciais versus listas ligadas Lista sequencial Uma lista sequencial é um conjunto de elementos contíguos na memória. Um vetor é o melhor exemplo de lista
Estruturas de Dados Aula 10: Listas (parte 2) 19/04/2011
Estruturas de Dados Aula 10: Listas (parte 2) 19/04/2011 Fontes Bibliográficas Livros: Projeto de Algoritmos (Nivio Ziviani): Capítulo 3; Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo
REVISÃO DE PILHAS E FILAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
REVISÃO DE PILHAS E FILAS Vanessa Braganholo Estruturas de Dados e Seus Algoritmos PILHAS E FILAS São tipos especiais de listas com disciplina restrita de acesso Acesso Consulta Inserção Remoção Disciplina
Algoritmos e Estruturas de Dados I
Algoritmos e Estruturas de Dados I Prof. Daniel M. Martin ([email protected]) Aula 9 (laboratório) O Labirinto Descrição do problema O problema é achar o caminho entre dois pontos de interesse
Listas - Outras. Listas Circulares Nós Cabeça Listas Duplamente Ligadas/Encadeadas Aplicações
Listas - Outras Listas Circulares Nós Cabeça Listas Duplamente Ligadas/Encadeadas Aplicações 5 e 7/10/2010 Listas Circulares Encadeadas Dinâmicas Se o nó next do último nó apontar para o primeiro, teremos
Pilhas e Filas. Algoritmos e Estruturas de Dados Flavio Figueiredo (http://flaviovdf.github.io)
Pilhas e Filas Algoritmos e Estruturas de Dados 2 2017-1 Flavio Figueiredo (http://flaviovdf.github.io) 1 Pilhas 2 Pilhas (Stack) Estrutura similar às listas lineares que vimos na última aula [Mais Simples]
SCC 202 Prova 1. 28/9/2010 Resolução e Comentários
SCC 202 Prova 1 28/9/2010 Resolução e Comentários Questão 1) (3.5) Sobre TADs. a) O que é e quais são as vantagens de se utilizar Tipos Abstratos de Dados (TADs) no projeto de desenvolvimento de software?
Estruturas de Dados Filas
Estruturas de Dados Filas Roteiro Introdução Definição de Fila (Queue) Aplicações Operações sobre Fila Implementação de Fila Com vetores Com listas encadeadas Exercícios Introdução Estamos acostumados
Listas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.
Listas Estáticas SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic [email protected] Instituto de
Fila e Deque. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.
Fila e Deque SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic [email protected] Instituto de Ciências
Atividade de laboratório listas encadeadas simples
Atividade de laboratório listas encadeadas simples 1. Estrutura básica Uma lista encadeada simples é uma estrutura de dados composta de uma seqüência de estruturas elementares chamadas nós. Cada nó contém
Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB
Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB [email protected] Listas e Filas Estruturas de Dados 2 Estrututuras de dados lineares Pilhas (stack) Estrutura de dados onde a inserção
Curso de Programação C em Ambientes Linux Aula 05
Curso de Programação C em Ambientes Linux Aula 05 Centro de Engenharias da Mobilidade - UFSC Professores Gian Berkenbrock e Giovani Gracioli http://www.lisha.ufsc.br/c+language+course+resources Conteúdo
Aula 14 Listas Duplamente Encadeadas. prof Leticia Winkler
Aula 14 Listas Duplamente Encadeadas prof Leticia Winkler 1 Lista Duplamente Encadeada É um tipo de lista encadeada que pode ser vazia (NULL) ou que pode ter um ou mais nós, sendo que cada nó possui dois
TAD: Tipo Abstrato de Dados (parte 2)
TAD: Tipo Abstrato de Dados (parte 2) SCC0202 Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Modularização em C Programa em C pode ser dividido em vários arquivos Arquivos fonte com extensão.c
TAD: Tipo Abstrato de Dados (parte 2)
TAD: Tipo Abstrato de Dados (parte 2) SCC0502 Algoritmos e Estruturas de Dados I Programa em C pode ser dividido em vários arquivos Arquivos fonte com extensão.c Denominados de módulos Cada módulo deve
Listas Ligadas (Encadeadas) Listas Simplesmente Encadeadas
Listas Ligadas (Encadeadas) Matrizes são estruturas de dados muito úteis fornecidas nas linguagens de programação. No entanto, elas têm pelo menos duas limitações: 1- Seu tamanho tem que ser conhecido
12. Filas Interface do tipo fila
12. Filas W. Celes e J. L. Rangel Outra estrutura de dados bastante usada em computação é a fila. Na estrutura de fila, os acessos aos elementos também seguem uma regra. O que diferencia a fila da pilha
Tipos abstratos de dados; pilhas e filas
1 Tipos abstratos de dados; pilhas e filas Além do Sedgewick (sempre leiam o Sedgewick), veja http://www.ime.usp.br/~pf/algoritmos/aulas/pilha.html http://www.ime.usp.br/~pf/algoritmos/aulas/fila.html
Lista Encadeada (Linked List)
Lista Encadeada (Linked List) As listas ou listas encadeadas são a estrutura de dados mais simples concebível excetuando-se naturalmente os arrays. Listas encadeadas nada mais são que uma seqüência de
struct Nodo { int struct Nodo struct Nodo typedef struct Nodo *PNodo; int ConstruirLista (PNodo *H, PNodo *T) { int Criar
struct Nodo { int Elemento; struct Nodo *Prox; struct Nodo *Ant; ; typedef struct Nodo *PNodo; Copiar para o ficheiro ListasLigadasDuplas.h e adaptar as funções associadas às seguintes operações: Criar;
Módulo 10 Listas Encadeadas
Estruturas de Dados Módulo 10 Listas Encadeadas 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus
Algoritmos e Estruturas de Dados: Lista Duplamente Encadeada
Lista Duplamente Encadeada Interface 1/13 dlist_init void dlist_init(dlist *list, void (*destroy)(void *data)); Algoritmos e Estruturas de Dados: Lista Duplamente Encadeada Rômulo Silva de Oliveira Departamento
REVISÃO DE C. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
REVISÃO DE C Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REVISÃO DE C Ponteiros Alocação dinâmica de memória Recursão INSTITUTO DE COMPUTAÇÃO - UFF 2 PONTEIROS PONTEIROS C permite o armazenamento
LISTAS ENCADEADAS OU NÃO- SEQÜENCIAIS. Estrutura de Dados
LISTAS ENCADEADAS OU NÃO- SEQÜENCIAIS Listas Lineares Como visto anteriormente, as operações básicas para o nosso TAD Lista Linear são: FLVazia Vazia Retira Insere Imprime A implementação através de arrays
INF 1620 P2-01/11/03 Questão 1 Nome:
INF 1620 P2-01/11/03 Questão 1 Considere a implementação de uma lista encadeada para armazenar as notas dos alunos de uma turma dada pelo tipo abaixo: struct lista { char nome[81]; int mat; float p1, p2,
AULA 12 ESTRUTURA DE DADOS
AULA 12 ESTRUTURA DE DADOS Fila (implementação dinâmica) Norton T. Roman & Luciano A. Digiampietri Fila É uma estrutura linear na qual: - As inserções ocorrem no final da fila; - As exclusões ocorrem no
Algoritmos e Estruturas de Dados I
Algoritmos e Estruturas de Dados I Prof. Daniel M. Martin ([email protected]) Aula 7 (laboratório) Exercício de Laboratório Neste exercício você deverá praticar o uso da estrutura de dados 'Fila'
Introdução a Programação. Listas Encadeadas
Introdução a Programação Listas Encadeadas Tópicos da Aula Hoje aprenderemos que existem, além de vetores, estruturas de dados dinâmicas que podem armazenar coleções de dados Estruturas Dinâmicas e Vetores
Estrutura de Dados Listas
Universidade Federal da Paraíba Centro de Informática Departamento de Informática Estrutura de Dados Listas 1 Tiago Maritan [email protected] Conteúdos Abordados O Conceito de Listas Listas com Representação
Matrizes Esparsas. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista
Matrizes Esparsas SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic [email protected] Instituto
Linguagem C: Listas Encadeadas
Prof. Paulo R. S. L. Coelho [email protected] Faculdade de Computação Universidade Federal de Uberlândia GEQ007 Organização 1 Introdução 2 3 Organização Introdução 1 Introdução 2 3 Introdução Introdução
Algoritmos e Estruturas de Dados II IEC013
Algoritmos e Estruturas de Dados II IEC013 TAD, Pilhas e Filas Prof. César Melo Todos os créditos ao Prof. Leandro Galvão TAD: Definição SE programa = definição de um tipo de dados + operação sobre dados
Aplicações de listas e outras estruturas. SCC-502 Algoritmos e Estruturas de Dados I
Aplicações de listas e outras estruturas SCC-52 Algoritmos e Estruturas de Dados I Grandes números Problema: lidar com números muito grandes Em C, inteiros (mesmo long int) são limitados Como somar números
Estruturas de Dados Aula 11: TAD Pilha
Estruturas de Dados Aula 11: TAD Pilha Fontes Bibliográficas Livros: Projeto de Algoritmos (Nivio Ziviani): Capítulo 3; Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 10; Estruturas
Filas. Prof. Rui Jorge Tramontin Jr. UDESC - Rui J. Tramontin Jr. 1
Filas Prof. Rui Jorge Tramontin Jr. UDESC - Rui J. Tramontin Jr. 1 Índice Introdução Aplicações Implementação / Modelagem Operações de uma fila TAD da Fila em C UDESC - Rui J. Tramontin Jr. 2 Introdução
Árvores Binárias Balanceadas Estrutura de Dados I
- entro de iências Exatas, Naturais e de Saúde Departamento de omputação Árvores inárias alanceadas Estrutura de Dados I OM06992 - Estrutura de Dados I Prof. Marcelo Otone guiar [email protected]
Pilhas e Filas Encadeadas. Algoritmos e Estruturas de Dados I
Pilhas e Filas Encadeadas Algoritmos e Estruturas de Dados I Pilha Lista linear: pilha Represente graficamente o funcionamento da pilha, representando a pilha vazia, a entrada e a saída de elementos Quais
Estruturas de Dados. Módulo 11 Pilhas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1
Estruturas de Dados Módulo 11 Pilhas 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)
Programação II. Listas Encadeadas (Linked Lists) Bruno Feijó Dept. de Informática, PUC-Rio
Programação II Listas Encadeadas (Linked Lists) Bruno Feijó Dept. de Informática, PUC-Rio Vetores vs Estruturas Dinâmicas Vetores (arrays): Ocupa um espaço contíguo de memória Permite acesso randômico
Listas Lineares. continuando...
Listas Lineares continuando... 1 Listas! relembrando: listas lineares agrupa informações referentes aum conjunto de elementos que, de alguma forma, se relacionam entre si! Uma lista linear ou está vazia,
Tipos Abstratos de Dados
Tipos Abstratos de Dados Prof. Jussara Almeida Derivado das transparências do Algoritmos e Estrutura de Dados Algoritmo: Sequência de ações executáveis para a solução de um determinado tipo de problema
Tipos Abstratos de Dados TADs
Tipos Abstratos de Dados TADs Exemplo Folha de freqüência Disciplina: Estruturas de Dados I Semestre: 2013-2 Turmas: U Professor: Sandra matricula nome......... XXXX ZZZZ YYYY Ana Maria Pedro Operações:
INF 1007 Simulado P2 Nome: Instruções
INF 1007 Simulado P2 Nome: Matrícula: Turma: Instruções 1. Tempo de prova: 1 hora e 30 minutos. 2. Entregue a solução de sua prova em um ÚNICO arquivo texto, com o nome Turma_Matricula_P2.txt (por exemplo
Algoritmos e Estruturas de dados
Algoritmos e Estruturas de dados Listas Encadeadas Prof. Dr. Fábio Rodrigues de la Rocha (Listas Encadeadas) 1 / 21 Definição: Anteriormente estudamos listas encadeadas que foram implementadas como vetores
Instituto de C. Linguagem C: Listas. Luis Martí Instituto de Computação Universidade Federal Fluminense -
Instituto de C Linguagem C: Listas Luis Martí Instituto de Computação Universidade Federal Fluminense [email protected] - http://lmarti.com Listas Encadeadas Definição Funções básicas Tópicos Principais
CES-11. Pilhas Definição Operações Filas. Operações Deques. Definição. Operações
CES-11 Pilhas Definição Operações Filas Definição Operações Deques Definição Operações PILHAS, FILAS E DEQUES As listas lineares admitem inserção e eliminação em qualquer posição. Pilhas, filas e deques
Tipos Abstratos de Dados
Tipos Abstratos de Dados Prof. Rui Jorge Tramontin Jr. UDESC - Rui J. Tramontin Jr. 1 Índice Introdução Definição de Tipos Abstratos de Dados Exemplos de TADs Implementação de TADs Implementação em C Exemplo
Tipos Abstratos de Dados
Tipos Abstratos de Dados Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 03 Algoritmos e Estruturas de Dados I Qual a diferença entre um algoritmo e um programa? Algoritmos e Estruturas de Dados
Listas: nós de cabeçalho, listas não homogêneas, listas generalizadas
Listas: nós de cabeçalho, listas não homogêneas, listas generalizadas SCC-502 Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Lista com nó de cabeçalho Nó de cabeçalho Header, sentinela, etc.
Programação de Computadores II. Cap. 9 Tipos Abstratos de Dados (TAD)
Programação de Computadores II Cap. 9 Tipos Abstratos de Dados (TAD) Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados
Fila. Algoritmos e Estruturas de Dados I
Fila Algoritmos e Estruturas de Dados I Fila O que é? Para que serve? 2 Biblioteca Problema: automação de uma biblioteca Todos os livros devem ser cadastrados O sistema deve informar se um livro está disponível
Filas. Nesta aula veremos o ADT fila Em um computador existem muitas filas esperando pela impressora, acesso ao disco ou, num sistema timesharing,
Filas Nesta aula veremos o ADT fila Em um computador existem muitas filas esperando pela impressora, acesso ao disco ou, num sistema timesharing, pelo uso da CPU Algoritmos e Estruturas de Dados I José
Filas Implementação Sequencial
SCE 202 182 Algoritmos e Estruturas de Dados I Filas Implementação Sequencial Conceito Coleção ordenada de itens (lista ordenada) em que a inserção de um novo item se dá em um dos lados no fim e a remoção
Fila. 26 e 31/8/2008 Representação/Implementação: Seqüencial estática Encadeada dinâmica Exercícios/Aplicações
Fila 26 e 31/8/2008 Representação/Implementação: Seqüencial estática Encadeada dinâmica Exercícios/Aplicações Fila O que é? Para que serve? Modelos intuitivos de filas Linhas para comprar bilhetes de cinema
UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas
UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA Pilhas Estrutura de Dados A Estrutura de Dados Pilha Pilha é uma estrutura de dados usada em programação, que tem uma regra
Computação 2. Aula Profª. Fabiany Listas Duplamente Encadeadas
Computação 2 Aula 10.1 Listas Duplamente Encadeadas Profª. Fabiany [email protected] ListaEncadeada.h #ifndef _LISTAENCADEADA_H_ #define _LISTAENCADEADA_H_ #include #include #include
Filas. Prof. Túlio Toffolo BCC202 Aula 12 Algoritmos e Estruturas de Dados I
Filas Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 12 Algoritmos e Estruturas de Dados I O que é uma fila? 1 4 2 3 Fila 1 2 3 4 TAD Fila Tipo Abstrato de dados com a seguinte característica:
Aula 10 Alocação Dinâmica de Memória Listas Encadeadas. prof Leticia Winkler
Aula 10 Alocação Dinâmica de Memória Listas Encadeadas prof Leticia Winkler 1 Prof. Leticia Winkler 2 Alocação de Memória Reservar na memória (principal), o espaço para guardar a informação através da
INF1007: Programação 2 8 Listas Encadeadas. (c) Dept. Informática - PUC-Rio 1
INF1007: Programação 2 8 Listas Encadeadas (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Motivação Listas encadeadas Implementações recursivas Listas de tipos estruturados (c) Dept. Informática
Listas Encadeadas. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR
Listas Encadeadas David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Listas Encadeadas Características: Tamanho da lista não é pré-definido Cada elemento guarda quem é o próximo Elementos não
Carlos Eduardo Batista. Centro de Informática - UFPB
Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB [email protected] Aritmética de ponteiros em C (continuação) O que acontece na memória? Ponteiro para ponteiro etc. Métodos de pesquisa
Alocação de Memória. Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná (UFPR)
Alocação de Memória Linguagem de Programação Estruturada 1 Alocação dinâmica e ponteiros Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná (UFPR) Sumario Introdução Alocação Estática
