Atividade de laboratório listas encadeadas simples

Tamanho: px
Começar a partir da página:

Download "Atividade de laboratório listas encadeadas simples"

Transcrição

1 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 a) uma informação útil (um dado) e b) a localização na memória do próximo nó na seqüência. Naturalmente, a informação da localização do próximo nó deve ser guardada em um ponteiro. Assim, cada nó deve ser uma struct que contenha estes dois campos a) e b). Vamos dar exemplos de tais structs, variando o tipo de informação contida nos nós: 1. A informação é um número inteiro. Neste caso, podemos escrever a struct como struct no { ; int info; struct no *prox; A informação é guardada no campo info, que é um int, e a localização do próximo nó é guardada no campo prox, que é um ponteiro. Este ponteiro deve ser do tipo struct no, já que vai apontar para o próximo nó. 2. A informação é uma string: struct no { ; char info[80]; struct no *prox; Neste caso, o campo info é uma string de 80 caracteres. 3. A informação consiste de vários dados, por exemplo nome e número de alunos: struct no { ; char nome[80]; int ra; struct no *prox; Neste caso, a informação guardada em cada nó consiste do conjunto da string nome e do inteiro ra. Além da definição da struct no, definiremos também um tipo para o ponteiro que aponta para um nó como pno typedef struct no * pno; Vamos representar por meio de um diagrama o primeiro caso. No diagrama abaixo está representada uma estrutura elementar e uma lista encadeada cujos dois primeiros elementos são 7 e 5 e o último é 9. O acesso ao primeiro elemento da lista é feito através do ponteiro inicial. O último elemento é marcado por seu ponteiro prox ter o valor inválido NULL, ao invés de apontar para um próximo elemento:

2 2. Adição de elementos à lista Uma lista tem duas operações fundamentais: adição de um elemento no começo da lista e remoção do primeiro elemento da lista. O diagrama abaixo mostra os passos para a inserção de um elemento da lista:

3 3. Exercícios adição de nós a uma lista. 1. Digite o programa a seguir que cria uma lista com um único elemento e a imprime: #include <stdio.h> #include <stdlib.h> struct no { int info; struct no *prox; ; typedef struct no * pno; int main() { /* Chamamos o ponteiro inicial de lista */ /* inicializamos com NULL, o que significa que a lista é vazia */ pno lista = NULL; pno n; /* usado para alocar um novo nó */ pno p; /* usado para imprimir a lista */ /* Um novo nó é criado e sua info é definida */ n = malloc(sizeof(struct no)); n->info = 10; /* O nó é adicionado à lista */ n->prox = lista; lista = n; /* A lista é imprimida */ printf("imprimindo lista:\n"); p = lista; /* começamos com o elemento inicial */ while(p!= NULL) { printf("%d ", p->info); /* imprimimos a info de cada elemento */ p = p->prox; /* avançamos para o próximo elemento da lista */ printf("\n"); system("pause"); return 0;

4 2. Repita na main() apenas a parte de criação de um novo nó e de adição à lista para que sejam inseridos os valores 20 e No programa resultante da questão 2, isole a criação de um novo nó dentro de uma função chamada get_node(). A função deve ser chamada assim: n = get_node(10). Esta chamada cria um novo nó cujo info é 10 e retorna um ponteiro para a localização deste nó. Isole também a adição de um novo nó dentro de uma função chamada push(). Esta função deve ser chamada assim: push(&lista, 10); para inserir o número 10 no início da lista (note que o argumento lista é passado por referência). Dica: os protótipos das funções devem ser: pno get_node(int); void push(pno *, int); A função push () deve chamar a função get_node() e a função main() deverá apenas chamar a função push(). 4. Isole a impressão da lista em uma função chamada print_list() que deve ser chamada assim: 5. Exercício resolvido: modifique a estrutura de dados para que a informação de cada nó seja um float. Escreva um programa que lê números digitados pelo usuário em qualquer quantidade, usando um laço (em cada laço, o programa deve perguntar se mais um número deve ser inserido). Dica: o laço deve ter uma forma assim: do { /* inserir aqui a entrada de dados na lista */ printf("mais um numero? (s/n): "); scanf(" %c", &c); /* atenção, o espaço antes do %c é importante */ while(c!= 'n'); Crie duas funções, uma que calcula a média e outra que calcula o desvio padrão dos valores da lista. Estas funções devem ser usadas assim: m = media(lista); s = desvio_padrao(lista, media); printf("media = %f, desvio padrao = %f\n", m, s); Dica: estas duas funções percorrem toda a lista, até o final, e portanto são parecidas com a print_list(). No final, o programa deve imprimir a lista de valores digitados, sua média e seu desvio padrão. Solução: veja no final.

5 4. Remoção de elementos de uma lista A operação fundamental de remoção de um elemento do início da lista é esquematizada no diagrama abaixo: Usando as funções definidas nos exercícios 3 e 4, podemos escrever um exemplo em que se retira o primeiro elemento de uma lista: main() { /* Ponteiro inicial da lista, inicialmente vazia: */ pno lista = NULL;

6 /* Será usado para guardar o endereço do primeiro elemento da lista */ pno p; /* Três elementos são inseridos: */ push(&lista, 10); push(&lista, 20); push(&lista, 30); /* A lista é imprimida: */ /* Remoção do primeiro elemento */ /* guarda a localização do primeiro elemento: */ p = lista; /* imprime o primeiro elemento: */ printf("removendo o elemento %d.\n", p->info); /* faz com que o ponteiro inicial aponte para o segundo elemento: */ lista = p->prox; /* devolve a memória ocupada pelo primeiro elemento: */ free(p); /* A lista é novamente imprimida: */ 5. Exercícios remoção de elementos 6. Faça o exemplo de remoção acima funcionar. Dica: parta do código resultante do exercício 4, onde já estão definidas todas as funções necessárias. 7. Exercício resolvido: no código do exercício 6, isole a retirada do primeiro elemento em uma função chamada pop(). Esta função deve retornar 0 se a lista já era vazia antes de se tentar a remoção, ou 1 se a lista não era vazia (chamamos este valor inteiro de status). Ao invés de imprimir o valor retirado, ela deve passar este valor por referência a um parâmetro. Ela deve ser chamada assim: status = pop(&lista, &x); Solução: veja no final. 8. Exercício resolvido: crie uma função que lê uma quantidade qualquer de números entrados pelo usuário e os imprime na ordem inversa de entrada, usando as funções push() e pop() (observação: com estas funções, implementamos uma pilha (LIFO)). Solução: veja no final.

7 6. Exercícios resolvidos Solução do exercício 5: #include <stdio.h> #include <stdlib.h> #include <math.h> struct no { float info; struct no *prox; ; typedef struct no * pno; pno get_node(float x) { pno n = malloc(sizeof(struct no)); n->info = x; return n; void push(pno *lis, float x) { pno n = get_node(x); n->prox = *lis; *lis = n; void print_list(pno p) { printf("imprimindo lista:\n"); while(p!= NULL) { printf("%f ", p->info); p = p->prox; printf("\n"); float media(pno p) { float m = 0; int n = 0; while(p!= NULL) { m = m + p->info; n = n + 1; p = p->prox;

8 return m / n; float desvio_padrao(pno p, float m) { float s = 0; int n = 0; while(p!= NULL) { s = s + (p->info - m) * (p->info - m); n = n + 1; p = p->prox; return sqrt(s / n); int main() { pno lista = NULL; float x; char c; float m, s; do { printf("digite um numero: "); scanf("%f", &x); push(&lista, x); printf("mais um numero? (s/n): "); scanf(" %c", &c); while(c!= 'n'); m = media(lista); s = desvio_padrao(lista, m); printf("media = %f, desvio padrao = %f\n", m, s); system("pause"); return 0;

9 Solução do exercício 7 (apenas a função pop() e a função main(), as outras funções, a struct e o typedef devem ser iguais aos do exercício acima). /* A função de remoção. */ /* l (o ponteiro inicial da lista) e n são passados por referência. */ int pop(pno *l, int *n) { /* guarda o endereço do elemento a ser retirado: */ pno p = *l; /* verifica se a lista era vazia: */ if(p == NULL) return 0; /* passa o valor a ser retirado à referência n: */ *n = p->info; /* altera o ponteiro inicial para apontar ao segundo elemento: */ *l = p->prox; /* libera a memória ocupada pelo primeiro elemento */ free(p); /* retorna 1, pois a lista não era vazia: */ return 1; int main() { /* Ponteiro inicial da lista, inicialmente vazia: */ pno lista = NULL; /* usados para guardar os valores recebidos pelo pop: */ int status, x; /* Três elementos são inseridos: */ push(&lista, 10); push(&lista, 20); push(&lista, 30); /* A lista é imprimida: */ /* Remoção do primeiro elemento */ status = pop(&lista, &x); printf("status = %d, elemento removido: %d\n", status, x); /* A lista é novamente imprimida: */ system("pause"); return 0;

10 Solução do exercício 8 (apenas a função main(). O programa deve ser completado com o que falta) int main() { pno lista = NULL; int x; char c; /* Insere números na lista até que o usuário digite n */ do { printf("digite um numero: "); scanf("%d", &x); push(&lista, x); printf("mais um numero? (s/n): "); scanf(" %c", &c); /* atenção, o espaço antes de %c é importante! */ while(c!= 'n'); /* retira os elementos da lista e os imprime um por um */ /* até que pop() retorne 0 (isto é, a lista fique vazia) */ printf("numeros na ordem inversa: "); while(pop(&lista, &x)!= 0) { printf("%d ", x); printf("\n"); system("pause"); return 0;

INF 1620 P2-23/10/04 Questão 1 Nome:

INF 1620 P2-23/10/04 Questão 1 Nome: INF 1620 P2-23/10/04 Questão 1 Considere um tipo abstrato de dados para representar uma disciplina da PUC-Rio, com as seguintes informações: Nome da disciplina: com até 50 caracteres Código da disciplina:

Leia mais

INF 1620 P2-01/11/03 Questão 1 Nome:

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,

Leia mais

Introdução a Programação. Listas Encadeadas

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

Leia mais

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 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

Leia mais

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).

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,

Leia mais

Departamento de Informática - PUC-Rio INF 1007 Programação 2 P3 23/06/2010

Departamento de Informática - PUC-Rio INF 1007 Programação 2 P3 23/06/2010 Departamento de Informática - PUC-Rio INF 1007 Programação 2 P3 23/06/2010 Aluno: Instruções: 1) Escreva seu nome completo, matrícula e turma em todas as folhas desta prova; 2) A prova deve ser completamente

Leia mais

Listas Ligadas (Encadeadas) Listas Simplesmente Encadeadas

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

Leia mais

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 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

Leia mais

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 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

Leia mais

Listas ligadas/listas encadeadas

Listas ligadas/listas encadeadas 1 Listas ligadas/listas encadeadas Leitura recomendada: http://www.ime.usp.br/~pf/algoritmos/aulas/lista.html 2 Processamento elementar de listas Definição mais restritiva (tipo de lista possivelmente

Leia mais

Linguagem C: Listas Encadeadas

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

Leia mais

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 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)

Leia mais

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa?

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa? Funções Suponha um conjunto habitacional, com várias famílias...... imagina se todas elas morassem em uma única casa? Funções Introdução à Computação 1 de 28 Funções Na Programação, funções são conjuntos

Leia mais

Lista: conceito, representação e algoritmos

Lista: conceito, representação e algoritmos Lista: conceito, representação e algoritmos SCC0502 Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Problema Imaginem a situação da automação de uma biblioteca Todos os livros devem ser cadastrados

Leia mais

INF 1620 P2-14/10/05 Questão 1 Nome:

INF 1620 P2-14/10/05 Questão 1 Nome: INF 1620 P2-14/10/05 Questão 1 Considere um cadastro de produtos de um estoque, com as seguintes informações para cada produto: Código de identificação do produto: representado por um valor inteiro Nome

Leia mais

INF 1620 P3-29/06/04 Questão 1 Nome:

INF 1620 P3-29/06/04 Questão 1 Nome: INF 1620 P3-29/06/04 Questão 1 Considere um arquivo texto que descreve um conjunto de retângulos e círculos. Cada linha do arquivo contém a descrição de uma figura. O primeiro caractere da linha indica

Leia mais

Departamento de Informática - PUC-Rio INF 1007 Programação 2 P3 26/11/2010

Departamento de Informática - PUC-Rio INF 1007 Programação 2 P3 26/11/2010 Departamento de Informática - PUC-Rio INF 1007 Programação 2 P3 26/11/2010 Aluno: Matrícula: Turma: Instruções: 1) Escreva seu nome completo, matrícula e turma em todas as folhas desta prova; 2) A prova

Leia mais

SCC 202 Prova 1. 28/9/2010 Resolução e Comentários

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?

Leia mais

Alocação de Memória. Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná (UFPR)

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

Leia mais

2. Considerando as seguintes declarações de uma lista encadeada

2. Considerando as seguintes declarações de uma lista encadeada Departamento de Informática PUC-Rio INF1620 - Estruturas de Dados Terceira Lista de Exercícios 2005.1 1. Considerando as seguintes declarações de uma lista encadeada char matricula[8]; char turma; float

Leia mais

MC-102 Aula 13. Instituto de Computação Unicamp. 29 de Setembro de 2016

MC-102 Aula 13. Instituto de Computação Unicamp. 29 de Setembro de 2016 MC-102 Aula 13 Funções I Instituto de Computação Unicamp 29 de Setembro de 2016 Roteiro 1 Funções Definindo uma função Invocando uma função 2 O tipo void 3 A função main 4 Protótipo de funções 5 Funções

Leia mais

Aula 17: Ponteiros e Alocação Dinâmica em C

Aula 17: Ponteiros e Alocação Dinâmica em C Aula 17: Ponteiros e Alocação Dinâmica em C Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores

Leia mais

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 - 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

Leia mais

Estruturas de Dados Filas

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

Leia mais

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa?

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa? Funções Suponha um conjunto habitacional, com várias famílias...... imagina se todas elas morassem em uma única casa? Funções Programação de Computadores 1 de 28 Funções Na Programação, funções são conjuntos

Leia mais

Ponteiros e Tabelas. K&R: Capítulo 5

Ponteiros e Tabelas. K&R: Capítulo 5 Ponteiros e Tabelas K&R: Capítulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros

Leia mais

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 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

Leia mais

Algoritmos e Estruturas de dados

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

Leia mais

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 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

Leia mais

Módulo 10 Listas Encadeadas

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

Leia mais

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Computadores Digitais 2. Prof. Rodrigo de Souza Couto Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Tópicos Listas Encadeadas Introdução às listas encadeadas Manipulação de elementos Implementações recursivas Listas

Leia mais

Faculdade de Computação

Faculdade de Computação Faculdade de Computação Programação Procedimental 1 o Laboratório de Programação C Prof. Cláudio C. Rodrigues 1. Introdução O objetivo desta aula prática é exercitar o uso de variáveis de vários tipos

Leia mais

ESTRUTURA DE DADOS LISTAS LINEARES

ESTRUTURA DE DADOS LISTAS LINEARES ESTRUTURA DE DADOS LISTAS LINEARES Prof. Dr. Daniel Caetano 2014-2 Objetivos Compreender as listas sequenciais Implementar uma Lista Sequencial com Vetor Compreender o uso de listas sequenciais Material

Leia mais

Departamento de Informática - PUC-Rio INF 1007 Programação 2 P4 07/12/2010

Departamento de Informática - PUC-Rio INF 1007 Programação 2 P4 07/12/2010 Departamento de Informática - PUC-Rio INF 1007 Programação 2 P4 07/12/2010 Aluno: Matrícula: Turma: Instruções: 1) Escreva seu nome completo, matrícula e turma; 2) A prova deve ser completamente resolvida

Leia mais

Linguagem C: Ponteiros - Alocação Dinâmica

Linguagem C: Ponteiros - Alocação Dinâmica Prof. Paulo R. S. L. Coelho [email protected] Faculdade de Computação Universidade Federal de Uberlândia GEQ007 Organização 1 Ponteiros Alocação Dinâmica de Memória 2 3 4 Organização Ponteiros Alocação

Leia mais

Vetores(Arrays) Olimpíadas de Informática. Aulas preparatórias Introdução a Programação em C.

Vetores(Arrays) Olimpíadas de Informática. Aulas preparatórias Introdução a Programação em C. Olimpíadas de Informática Aulas preparatórias Introdução a Programação em C. Vetores(Arrays) Prof. Gemilson George [email protected] Blog: informaticageo.wordpress.com GEO.OBI Aula 05 Definição:

Leia mais

Programação Estruturada

Programação Estruturada Programação Estruturada Entrada e Saída. Mais sobre dados Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Saída

Leia mais

Aula 16: Laços aninhados e desvios

Aula 16: Laços aninhados e desvios Aula 16: Laços aninhados e desvios Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aula Anterior Comandos de Repetição (Parte

Leia mais

1 Exercícios com ponteiros

1 Exercícios com ponteiros Computação para Informática Funções e Ponteiros1 EXERCÍCIOS COM PONTEIROS Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Funções e ponteiros O objetivo desta aula prática

Leia mais

Programação: Entrada e Saída de Dados

Programação: Entrada e Saída de Dados Programação de Computadores I Aula 06 Programação: Entrada e Saída de Dados José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/41 Saída de dados I Podemos imprimir,

Leia mais

INF 1620 P4 30/06/07 Questão 1 Nome:

INF 1620 P4 30/06/07 Questão 1 Nome: INF 1620 P4 30/06/07 Questão 1 O maior divisor comum (MDC) de dois números inteiros é o maior número inteiro que faz uma divisão exata (com resto zero) desses dois números. Por exemplo, o MDC de 32 e 40

Leia mais

Estruturas de Dados Aula 11: TAD Pilha

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

Leia mais

INF 1620 P4-06/12/02 Questão 1 Nome:

INF 1620 P4-06/12/02 Questão 1 Nome: INF 1620 P4-06/12/02 Questão 1 (a) Escreva uma função em C que receba como parâmetro um número inteiro não negativo e retorne, como resultado da função, o valor do seu fatorial. O cabeçalho desta função

Leia mais

Lista de Exercícios de Algoritmos - 04 Para cada um dos exercícios abaixo, faça um programa (em laboratório) que teste a função.

Lista de Exercícios de Algoritmos - 04 Para cada um dos exercícios abaixo, faça um programa (em laboratório) que teste a função. Lista de Exercícios de Algoritmos - 04 Para cada um dos exercícios abaixo, faça um programa (em laboratório) que teste a função. Funções e estruturas básicas 1. Faça uma função que recebe a idade de uma

Leia mais

Pilhas Acesso. Pilha. Fila. Listas lineares especiais. Pilhas e Filas. Listas lineares especiais mais usuais. Disciplina restrita

Pilhas Acesso. Pilha. Fila. Listas lineares especiais. Pilhas e Filas. Listas lineares especiais mais usuais. Disciplina restrita Listas lineares especiais s Acesso consulta inserção remoção Disciplina restrita de acesso Disciplina restrita acesso permitido somente em alguns nós Listas lineares especiais mais usuais LIFO Last In

Leia mais

Linguagem C. André Tavares da Silva.

Linguagem C. André Tavares da Silva. Linguagem C André Tavares da Silva [email protected] Variáveis Posição nomeada de memória que é usada para guardar um valor que pode ser modificado pelo programa. Todas as variáveis devem ser

Leia mais

PONTEIROS E LISTAS. Kalinka Regina Lucas Jaquie Castelo Branco

PONTEIROS E LISTAS. Kalinka Regina Lucas Jaquie Castelo Branco PONTEIROS E LISTAS Kalinka Regina Lucas Jaquie Castelo Branco [email protected] ALOCAÇÃO DINÂMICA DE MEMÓRIA Pode-se assumir que as variáveis declaradas na cláusula variável do pseudo-código do algoritmo

Leia mais

Estrutura de dados 2. Ponteiro. Prof. Jesuliana N. Ulysses

Estrutura de dados 2. Ponteiro. Prof. Jesuliana N. Ulysses 1 3 Estrutura de dados 2 Ponteiro Ponteiro 2 O ponteiro é um tipo de dado como int, char ou float. A diferença do ponteiro ponteiro guardará um endereço de memória. Por meio deste endereço pode-se acessar

Leia mais

Estrutura de Dados I Bacharelado em Sistemas de Informação FACOM UFU Lista de Exercícios

Estrutura de Dados I Bacharelado em Sistemas de Informação FACOM UFU Lista de Exercícios Estrutura de Dados I Bacharelado em Sistemas de Informação FACOM UFU Lista de Exercícios Prof. Flávio de Oliveira Silva, M.Sc. 1. Crie uma função chamada somavetor. Esta função deve receber dois vetores

Leia mais

Módulo 5 Vetores e Alocação Dinâmica

Módulo 5 Vetores e Alocação Dinâmica Estruturas de Dados Módulo 5 Vetores e Alocação Dinâmica 1/9/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora

Leia mais

Funções de Entrada e Saída

Funções de Entrada e Saída inicio Escrita no ecrã (Saída de dados) Escrever( introduza o valor do raio ) Raio Leitura do valor do raio S Raio < 0 N O utilizador insere o valor do raio (Entrada de dados do teclado) Escrita no ecrã

Leia mais

Métodos Computacionais. Variações de Listas Encadeadas

Métodos Computacionais. Variações de Listas Encadeadas Métodos Computacionais Variações de Listas Encadeadas Variações de Listas Encadeadas Listas podem variar quanto ao: Tipo de encadeamento Simples Circulares Duplas Circulares e Duplas Conteúdo Tipos Primitivos

Leia mais

Estruturas Compostas Parte II

Estruturas Compostas Parte II Estruturas Compostas Parte II Filas e Pilhas Leonardo Tórtoro Pereira Slides fortemente baseados no material do professor Ricardo Farias: http://www.cos.ufrj.br/~rfarias/cos121/ Pilhas Pilhas Também conhecida

Leia mais

Lista com descritor (continuação)

Lista com descritor (continuação) Lista com descritor (continuação) Rotina para remover o eiro elemento de uma LLSECD: char removeiniciollsecd(tdescritor *l, TInfo val) { p = l->; l->=p->prox; if (l->==1) Rotina para remover o último nó

Leia mais

Vetores(Arrays) Olimpíadas de Informática. Aulas preparatórias Introdução a Programação em C.

Vetores(Arrays) Olimpíadas de Informática. Aulas preparatórias Introdução a Programação em C. Olimpíadas de Informática Aulas preparatórias Introdução a Programação em C. Vetores(Arrays) Prof. Gemilson George [email protected] Blog: informaticageo.wordpress.com GEO.OBI Aula 05 Vetores

Leia mais

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB

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

Leia mais

Programação: Vetores

Programação: Vetores Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia

Leia mais

Lista Encadeada (Linked List)

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

Leia mais

INF 1620 P1-04/10/03 Questão 1 Nome:

INF 1620 P1-04/10/03 Questão 1 Nome: INF 1620 P1-04/10/03 Questão 1 a) Implemente uma função para calcular as raízes de uma equação do segundo grau do tipo ax 2 +bx+c=0. O protótipo dessa função deve ser: void raizes (float a, float b, float

Leia mais

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 3 de setembro de 2010

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 3 de setembro de 2010 Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 3 de setembro de 2010 1 Introdução O objetivo desta aula prática é exercitar o uso de variáveis de vários tipos

Leia mais