TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Estrutura De Dados

Trabalho Universitário: Estrutura De Dados. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  12/10/2014  •  1.060 Palavras (5 Páginas)  •  264 Visualizações

Página 1 de 5

1. ALOCAÇÃO ESTÁTICA DE MEMÓRIA.

Ao desenvolver um programa em linguagem “C” normalmente temos que especificar antes de começar rodar um programa as variáveis que iremos utilizar, reservando espaço na memória para as mesmas, as variáveis alocadas em posições fixas da memória são chamadas de estáticas, as variáveis que são criadas e destruídas durante a execução do programa, são chamadas de dinâmicas.

1.1. Formas de alocação

A alocação de memória em um computador pode ser classificada em dois grupos:

Alocação Estática: Os dados tem tamanho fixo e estão organizados de forma sequencial na memória do computador.

Alocação Dinâmica: Os dados podem ter tamanho variável já que podemos definir o tamanho de memória que ser alocado para cada dado. Com isso podemos alocar blocos de memória que podem não estar organizados sequencialmente.

1.2. Alocação Estática de Memória

As estruturas de dados quando armazenam um conjunto de dados (exemplo: um cadastro), podem ser organizadas de acordo com a maneira que os dados são inseridos e retirados da memória do computador. Os tipos mais usuais de estrutura de dados são: as listas lineares sequenciais (vetores simples), as filas, as pilhas e os deques.

Em C um tipo de dados:

typedef struct

{

char * tipologradouro;

char * logradouro;

char * numero;

char * complemento;

char * cidade;

} ENDERECO;

A declaração de uma struct é feita de forma semelhante a um array.

Exemplo de declaração de um endereço com inicialização

ENDERECO a = {“Avenida”, “Presidente Vargas”, “1254”, “6 andar c/j 61”, “Fernandópolis”}.

Diagrama de sintaxe:

A declaração de variáveis pode ser feita de quatro formas, com a definição de tipo e a declaração de variáveis em instruções diferentes e na mesma instrução e com a palavra reservada typedef.

1. Instruções diferentes:

struct ENDERECO { char * tipologradouro;

char * logradouro; char * numero; char * complemento; char * cidade; };

Struct ENDERECO a;

2. Mesma instrução:

Ssruct ENDERECO { char * tipologradouro;

char * logradouro; char * numero; char * complemento; char * cidade;

} a;

3. Instruções diferentes com typedef:

typedef struct { char * tipologradouro;

char * logradouro; char * numero; char * complemento; char * cidade; } ENDERECO;

ENDERECO a;

4. Mesma instrução com typedef:

typedef struct { char * tipologradouro;

char * logradouro; char * numero; char * complemento; char * cidade;

} a;

A inicialização de uma estrutura é feita da mesma forma que um array.

ENDERECO a = {“Avenida”, “Presidente Vargas”, “1254”, “6 andar c/j 61”, “Fernandópolis”}

O acesso aos dados é efetuado por meio de identificadores.

Exemplo

a.tipologradouro = “Avenida”;

a.logradouro = “Presidente Vargas”;

Os operadores de acesso de uma estrutura são “.” e “-> ou *” o primeiro é utilizado para a passagem de valores o segundo para a atribuição por ponteiros.

Exemplo:

1. Operador “.”.

struct ENDERECO a;

a.tipologradouro = “Avenida”;

a.logradouro = “Presidente Vargas”;

2. Operador “->”.

struct ENDERECO *a;

a->tipologradouro = “Avenida”;

a->logradouro = “Presidente Vargas”;

3. Operador “*”.

struct ENDERECO *a;

(*a).tipologradouro = “Avenida”;

(*a).logradouro = “Presidente Vargas”;

A atribuição de valores pode ser feita membro a membro ou também pode ser feita entre estruturas

Exemplo:

1. Membro a membro

struct ENDERECO a;

a.tipologradouro = “Avenida”;

a.logradouro = “Presidente Vargas”;

2. Entre estruturaas

struct ENDERECO a, b;

a = b;

a = * (&y);

1.2.1. Passagem para estruturas.

As estruturas podem ser utilizadas na passagem para funções, da mesma forma que uma variável elas podem ser passadas por valor ou por referencia (endereço de memória). De acordo com o método escolhido deve-se utilizar o operador correto, ou seja, “.” ponto para passagem por valor e “->” para a passagem por referencia.

1.2.1.1. Passagem por cópia de valor da estrutura.

Passa-se o nome da estrutura para a estrutura da função implicando a copia do conteúdo de uma estrutura para outra. Em detrimento as passagem de alinhamento, ou seja, arrays, esse tipo de passagem não existe, ao passar o nome de um array para um array local da função não esta sendo feita a copia do conteúdo do array e sim uma copia do endereço do array.

ESTRUTURAS: Recebe a copia da estrutura.

float

...

Baixar como (para membros premium)  txt (8.7 Kb)  
Continuar por mais 4 páginas »
Disponível apenas no TrabalhosGratuitos.com