Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.

Slides:



Advertisements
Apresentações semelhantes
IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
Advertisements

Estrutura de Dados Pilha by Aquiles Burlamaqui. Definição Uma pilha é uma das várias estruturas de dados que admitem remoção de elementos e inserção de.
LISTAS Dilvan Moreira, parcialmente baseado em material do prof. Ricardo Campello.
Aula T10 – BCC202 Listas – Parte 2 Túlio Toffolo www. decom. ufop
Aula T-09 – BCC202 Listas (Parte 1) Túlio Toffolo www. decom. ufop
Listas Encadeadas CONTEÚDO (1) Motivação (2) Definição (3) Operações
Estruturas de Dados Árvores Binárias
Listas encadeadas Prof. Rosana Palazon.
Algoritmos de manipulação de estruturas elementares de dados
Listas duplamente encadeadas
Programação II Estruturas de Dados
TADS – Tipos Abstratos de Dados
Listas duplamente encadeadas
1 Tipos definidos O programador pode definir seus próprios tipos de dados tipos complexos usados da mesma forma que os simples declaram-se variáveis utilizando-se.
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
David Menotti Estruturas de Dados I DECOM – UFOP
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
Listas lineares Listas Lineares Fila Dupla Pilha Fila Saída restrita
AED – Algoritmos e Estruturas de Dados
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Prof.: Sergio Pacheco Estruturas de Dados I Prof.: Sergio Pacheco 1.
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Listas com Ponteiros Listas encadeadas Listas circulares.
Universidade de Brasília
Linguagem C Strings.
Slides: Prof. João Fabro UTFPR - Curitiba
Slides: Prof. SIMÃO Revisão: Prof. João Fabro
Slides: Prof. João Fabro UTFPR - Curitiba
Ponteiros.
Lista Encadeada Circular Lista Duplamente Encadeada
Listas Encadeadas.
Revisão da Linguagem C.
Alocação Dinâmica de Memória
APRESENTAÇÃO: GIANCARLO DE GUSMÃO GONÇALVES CURSO DE C AULA 08: Tipos Estruturados.
ALGORITMOS E ESTRUTURAS DE DADOS
Prof. Hilton Cardoso Marins Junior LISTA LINEAR
Listas Encadeadas Raquel O. Prates, Luiz Chaimowicz, Jussara Almeida
Árvores binárias de pesquisa com balanceamento
PROGRAMAÇÃO ESTRUTURADA II
Denise Guliato Faculdade de Computação – UFU
Denise Guliato Faculdade de Computação – UFU
INTELIGÊNCIA ARTIFICIAL
Tipos Abstratos de Dados
Principais operações em Listas TPA Listas Simples Inserção no Final 1.void insereNofinalDaLista(Lista *l, Elemento e){ 2.Lista paux,p; 3. p.
TAD Pilha com Alocação Dinâmica de Memória
Implementação de FILAS com Alocação Dinâmica
Lista Encadeada Circular Lista Duplamente Encadeada
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Prof. Ricardo Santos PONTEIROS
Estruturas de Dados Aula 9: Listas (parte 1)
Estruturas de Dados Aula 11: TAD Pilha
Árvore Binária de Busca
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática Disciplina: Estrutura de Dados Professor: Cheli dos S. Mendes da Costa Listas.
Listas Simplesmente Encadeadas
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Estruturas de Dados Aula 17: Estruturas Genéricas
ESTRUTURA DE DADOS Aula 10 – Listas Duplamente Encadeadas.
Estruturas de Dados Aula 7: Tipos Estruturados 23/04/2014.
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação Versão: _01.
Prof. Alessandro Gonçalves
Algoritmos e Programação MC102 Prof. Paulo Miranda IC-UNICAMP Aula 15 Ponteiros.
Estrutura de Dados Prof. André Cypriano M. Costa
Lista Ligada Estrutura de Dados II Prof. Gale. Vantagens  Crescem (ou decrescem) à medida que elementos são inseridos (ou removidos)  seqüência encadeada.
Alocação Dinâmica Dilvan Moreira. Objetivos  Entender o que são e como usar:  Gerenciamento de Memória  Alocação Dinâmica em C.
Fundamentos de Programação 1 Slides 21 Prof.ª Fabiany e Prof. SIMÃO Linguagem C “Lista Encadeada”.
Fundamentos de Programação 1 Slides 22 Prof.ª Fabiany e Prof. SIMÃO Linguagem C “Lista Duplamente Encadeada - Projeto com vários Arquivos”.
Transcrição da apresentação:

Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1

Sumário Tipos Struturas; Exercício; Prof.: Sergio Pacheco 2 2

Tipo Estruturas Prof.: Sergio Pacheco 3 3

Tipo Estruturas Tipo de dado com campos compostos de tipos mais simples; elementos acessados através do operador de acesso “ponto” (.); Uma estrutura deve ser declarada após incluir as bibliotecas e antes da função main. Prof.: Sergio Pacheco 4 4

Tipo Estruturas Prof.: Sergio Pacheco 5 5

Tipo Estruturas - Exemplo Prof.: Sergio Pacheco 6 6

Tipo Estruturas – Exemplo fflush void cad_condenado() { system ("cls"); printf ("Inserir dados\n"); printf("\n"); printf (" Nome: "); fflush(stdin); fgets (nome,31,stdin); printf(“\n"); printf ("\n Idade: "); scanf ("%d", &idade); } Prof.: Sergio Pacheco 7 7

Tipo Estruturas - Listas Encadeadas Seqüência encadeada de elementos, chamados de nós da lista; E são representados por 2 campos: Um relacionado a informação armazenada; Outro para o próximo nó da lista. Prof.: Sergio Pacheco 8 8

Estrutura - Lista encadeada Não podemos garantir que os elementos armazenados na lista ocuparão um espaço de memória contíguo, portanto não temos acesso direto aos elementos da lista. Para que seja possível percorrer todos os elementos da lista, devemos explicitamente guardar o encadeamento dos elementos. Prof.: Sergio Pacheco 9 9

Estrutura - Lista encadeada Trata-se de uma estrutura auto-referenciada. Prof.: Sergio Pacheco 10 10

Estrutura - Lista encadeada Em C oferece outro operador de acesso, que permite acessar campos a partir do ponteiro da estrutura. Este operador é composto por um traço seguido de um sinal de maior, formando uma seta ( ->). Em resumo, se temos uma variável estrutura e queremos acessar seus campos, usamos o operador de acesso ponto (p.x ); se temos uma variável ponteiro para estrutura, usamos o operador de acesso seta (pp->x). Seguindo o raciocínio, se temos o ponteiro e queremos acessar o endereço de um campo, fazemos &pp->x. pp->x = 12.0; Prof.: Sergio Pacheco 11 11

Estrutura - Lista encadeada Passagem de estruturas para funções void imprime (struct ponto p) { printf("O ponto fornecido foi: (%.2f,%.2f)\n", p.x, p.y); } Problema : Cópia de toda a estrutura para a pilha: Passagem por Valor : A função não tem como alterar os valores dos elementos da estrutura original; É mais conveniente passar apenas o ponteiro da estrutura, mesmo que não seja necessário alterar os valores dos elementos dentro da função. Prof.: Sergio Pacheco 12 12

Lista encadeada - Inicialização A função que inicializa uma lista deve criar uma lista vazia, sem nenhum elemento; Uma lista vazia é representada pelo ponteiro NULL. A função responsável por inicializar lista vazia, deve retornar NULL, ou seja, return Null . /* função de inicialização: retorna uma lista vazia */ Lista* inicializa (void){ return NULL; } Prof.: Sergio Pacheco 13 13

Lista encadeada - Inserção Uma vez criada a lista vazia, podemos inserir novos elementos nela; Para cada elemento inserido na lista, devemos alocar dinamicamente a memória necessária para armazenar o elemento e encadeá-lo na lista existente. /* inserção no início: retorna a lista atualizada */ Lista* insere (Lista* l, int i) { Lista* novo = (Lista*) malloc(sizeof(Lista)); novo->info = i; novo->prox = l; return novo; } Prof.: Sergio Pacheco 14 14

Lista encadeada – Verifica se a Lista vazia Função que verifique se uma lista está vazia ou não; Deve-se para isso incluir a biblioteca #include <stdbool.h>. /* função vazia: retorna true se vazia ou false se não vazia */ bool vazia (Lista* l){ if (l == NULL) return true; else return false; } Por que não precisa verificar se a lista está cheia na hora da inserção. Prof.: Sergio Pacheco 15 15

Lista encadeada – Exercício Montar as funções mostradas e montar um único arquivo.c; Desenhar, com o intuito de mostrar por onde estão sendo as inserções de novos nós; Criar um função para procurar um item na lista, o programa deverá emitir a Msg elemento encontrado ou não; Alterar o código anterior para que o usuário possa interagir com a inserção de novos nós (inclusão de um menu). Arquivo.c Prof.: Sergio Pacheco 16 16

Lista encadeada – Exercício A função para retirar um elemento da lista é mais complexa; Verificar a posição do nó a ser retirado; Não podemos perder a referência Prof.: Sergio Pacheco 17 17

Lista encadeada – Exercício Montar as funções mostradas e montar um único arquivo.c; Desenhar, com o intuito de mostrar por onde estão sendo as inserções de novos nós; Criar um função para procurar um item na lista, o programa deverá emitir a Msg elemento encontrado ou não; Alterar o código anterior para que o usuário possa interagir com a inserção de novos nós (inclusão de um menu). Arquivo.c Prof.: Sergio Pacheco 18 18

Lista encadeada – Retirar } Prof.: Sergio Pacheco 19 19

Lista encadeada – Exercício Inserir no código a função de retirar um item da lista. Arquivo.c Prof.: Sergio Pacheco 20 20

Bom final de semana e até semana que vem !!! Deus abençoe a todos. ( Prof.: Sergio Pacheco 21 21