Buscar

Estrutura de dados

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 9 páginas

Prévia do material em texto

Disciplina: Estrutura de dados
Professor: Sergio Branco 
Equipe: 
Amanda dos S. Oliveira – Curso: Eng. Produção – Período: Décimo
Bruno Pontes Araújo - Curso: Eng. Mecânica Período: Quarto
Fábio Luís Paiva – Curso: Eng. Produção – Período: Décimo 
Flávio Magalhães Ribeiro – Curso: Eng. Civil – Período: Nono 
Natanael Sinésio da Silva - Curso: Eng. Mecânica - Período: Terceiro 
 
 
 
 
 
 
 
 
 Ponteiros
 
 
Vetores
 
 
Estrutura de dados 
Conceituar Ponteiros e Vetores em Estrutura de Dados
 
 
 
 
 
 
 
 
 
 
Estruturas de dados
Conceito: São maneiras de organizar os dados de são formas de distribuir e relacionar os dados disponíveis, de modo a tornar mais eficientes os algoritmos que manipulam esses dados. 
Objetivo: É principal para o desenvolvimento de programas e algoritmos. Assim como um número pode ser representado em vários sistemas diferentes, também um conjunto de dados relacionados entre si pode ser descrito através de várias estruturas de dados distintas
Uma estrutura de dados (ED), em ciência da computação, é uma coleção tanto de valores (e seus relacionamentos) quanto de operações (sobre os valores e estruturas decorrentes). É uma implementação concreta de um tipo abstrato de dado (TAD) ou um tipo de dado (TD) básico ou primitivo. Assim, o termo ED pode ser considerado sinônimo de TD, se considerado TAD um hipônimo de TD, isto é, se um TAD for um TD.
Conceituar Ponteiros e Vetores em Estrutura de Dados
 
 
 
 
 
 
 
 
 
 
Estruturas de dados
No decorrer da pesquisa foi identificado critérios para escolha e estudo de uma estrutura de dados que incluem eficiência para buscas e padrões específicos de acesso, necessidades especiais para manejo de grandes volumes, ou a simplicidade de implementação e uso. Ou seja, EDs eficientes são cruciais para a elaboração de algoritmos, diversas linguagens possuem ênfase nas EDs, como evidenciado pela POO, e aplicações distintas usufruem de ou requerem EDs específicas (e.g. um compilador usa uma Tabela de dispersão para identificadores e na mespaces, enquanto uma Árvore B ou  Árvore AA [en] é apropriada para acessos randômicos).
Em termos de EDs, os TDs e TADs são definidos indiretamente pelas operações e usos, e propriedades destas operações e usos: e.g. o custo computacional e o espaço que pode representar e ocupa na memória.
Conceituar Ponteiros e Vetores em Estrutura de Dados
O ponteiro nada mais é do que uma variável que guarda o endereço de outra variável. 
Declaração de ponteiros 
A declaração de ponteiros é feita da seguinte forma: int *ptr Conforme qualquer variável em C, o ponteiro deve ser declarado antes de ser usado. Basta inserir o operador indireto (*) após o tipo da variável: int *ptr; Essa declaração define a variável ptr como um ponteiro para uma variável do tipo int (número inteiro). 
A declaração de ponteiro não tem o mesmo significado da declaração de uma variável. Ela indica apenas o tipo de objeto de dados apontado e, desde que contém endereço de memória, o tamanho em bytes que ocupa não tem relação com o tamanho do objeto apontado. 
O tamanho do ponteiro é fixo e depende apenas do modelo de memória do sistema (2 bytes ou 4 bytes, normalmente). Para declarar mais de um ponteiro por linha, usa-se um operador indireto (*) para cada char *ch1, *ch2; (são ponteiros para o tipo char). Se um operador for omitido (exemplo: char *ch1, ch2;), a variável correspondente não será ponteiro e, certamente, provocará erro de execução se usada como tal.
OBS: O ponteiro pode ser declarado para qualquer tipo legal de variável em C (char, int, float, double, etc), além de void, que seria um genérico, podendo apontar para qualquer tipo de dado.
 
 
 
 
 
 
 Ponteiros
 
 
 
 
Conceituar Ponteiros e Vetores em Estrutura de Dados
Inicialização de ponteiros: 
Para se inicializar um ponteiro é necessário apenas atribuir-se um endereço de memória. A simples declaração de um ponteiro não o faz útil. É necessária a indicação da variável para a qual ele aponta.
int var; int *ptr; var = 10; ptr = &var; 
Na sequência acima, são declarados uma variável tipo int (var) e um ponteiro para o mesmo tipo (ptr). A terceira linha atribui o valor 10 a var e a última linha inicializa o ponteiro ptr.
Observa-se o uso do operador de endereçamento (&) para inicialização do ponteiro. Isso significa, no código ptr = &var, que ptr passa a conter o endereço de var, não o seu valor. 
Supondo que o sistema é endereçado por 2 bytes, a Figura 2.1 acima dá uma ideia gráfica dessa associação: o conteúdo de ptr é 4052, que é o endereço do primeiro byte da variável var (ptr ocupa 2 bytes por causa do endereçamento do sistema e var também ocupa 2 bytes, mas por ser do tipo int. O valor 4052 para a posição de memória de var é apenas ilustrativo. Na prática, dependerá do local de memória onde o programa foi carregado. Com ptr apontando para var, é possível realizar operações com esta última de forma indireta, a partir de ptr. Exemplos a seguir. 
Acrescentando a linha
int newVar = *ptr; 
ao código anterior, o valor de newVar é 10, que é o valor de var lido indiretamente através de ptr. 
 
 
 
 
 
 
 Ponteiros
 
 
 
 
Conceituar Ponteiros e Vetores em Estrutura de Dados
E a linha 
*ptr = 20; 
modifica o valor de var para 20, ou seja, altera de forma indireta através de ptr. 
É importante lembrar que um ponteiro declarado e não inicializado poderá ter conteúdo nulo ou aleatório, a depender da alocação sistema. Nessa condição, se o conteúdo apontado for modificado, algumas posições de memória terão seus valores indevidamente alterados e as consequências serão imprevisíveis. 
Agora veremos um exemplo completo de utilização de ponteiros: 
#include <stdio.h>
#include <stdio.h>
int main ( ) { 
int a; 
int b; 
int c; 
int *ptr; /* declara um ponteiro para um inteiro */
/* um ponteiro para uma variável do tipo inteiro */ 
a = 100; 
b = 2; 
c = 3; 
ptr = &a; /* ptr recebe o endereço da variável a */ 
printf(“Valor de ptr: %p, Conteúdo de ptr: %d\n”, ptr, *ptr); 
printf(“B: %d, C: %d \n”, b, c); 
a = 200; printf(“Valor de ptr: %p, Conteúdo de ptr: %d\n”, ptr, *ptr); system(“pause”); }
 
 
 
 
 
 
 Ponteiros
 
 
 
 
Conceituar Ponteiros e Vetores em Estrutura de Dados
 
 
 
 
 
 
 
 
 
Vetores
 
 
 
Um vetor ou arranjo é uma estrutura de dados que armazena uma sequência de objetos sendo todos do mesmo tipo e também posições consecutivas da memória principal do computador. São estruturas lineares e estáticas, ou seja, são compostas por um número finito e pré-determinado de valores. Qualquer elemento do vetor pode ser alcançado diretamente, sem passar pelos elementos anteriores (o décimo elemento pode ser alcançado sem que seja necessário passar antes pelo primeiro).
Declaração e inicialização de um vetor:
A declaração de um vetor em uma estrutura pode ser da seguinte forma: 
Nome_Vetor: vetor[tamanho]tipo
Assim temos como exemplo de declarações: 
VET: vetor [10] numérico 
MEDIA: vetor [3] numérico 
Tomemos o primeiro exemplo (inteiro vet [10]) onde declaramos que estamos criando um vetor para números chamado de VET com dez posições. Desta forma o computador entende que deve alocar 10 espaços para 10 números inteiros que serão inseridos conforme especificado no programa. 
Conceituar Ponteiros e Vetores em Estrutura de Dados
 
 
 
 
 
 
 
 
 
Vetores
 
 
 
Exemplificado no programa
 VET:vetor [10] numérico 
INDICE:numérico 
INDICE<-0 
para INDICE de 0 até VET<9 passo 1 faça 
exibe Escreva um número 
recebe VET [INDICE] 
fecha_para 
para INDICE de 0 até VET<9 passo1 faça 
exibeVET [INDICE] 
recebe VET [INDICE] 
fecha_para
Conforme vimos, o primeiro laço para vai entender que ao entrar índice<-0, quando o usuário digitar o primeiro valor será alocado este valor em vetor. Quando chegar ao final do para ele fará o teste, se o índice continuar menor do que 10 ele entra no laço e recebe o segundo valor, chegando ao final do laço e fazendo novamente o processo até obter os dez valores quando sai do laço.No segundo laço acessamos estes dados e exibimos na tela aplicando o mesmo princípio do primeiro laço.
Operações com Vetores Podemos trabalhar com vetores numéricos, executando operações sobre eles da mesma forma como executaríamos com variáveis numéricas comuns. Devemos ter atenção que ao declararmos um determinado vetor, com um índice específico, estamos fazendo referência a um número.
Conceituar Ponteiros e Vetores em Estrutura de Dados
 
 
 
 
 
 
 
 
 
 
Estruturas de dados
Estrutura de Dados 
Nádia Mendes dos Santos; Geraldo Nunes da Silva Júnior; Otílio Paulo da Silva Neto
Curso Técnico em Informática. Teresina – PI 2013. 
HOROWITZ, E.; SAHNI, S. Fundamentos de Estruturas de Dados. Rio de Janeiro, Ed. Campus, 1986.
PINTO, Wilson Silva. Introdução ao Desenvolvimento de Algoritmos e Estrutura de dados. Ed. Érica LTDA.
Livro: Estruturas de Dados, Autor: Paulo Veloso/Cleusio dos Santos/Paulo Azeredo/Antonio Furtado, 1984, Editora Campus, ISBN 85-7001-352-3
Referências Bibliográficas

Continue navegando