A Estrutura de Dados
Por: Raul Guimaraes • 22/9/2015 • Relatório de pesquisa • 909 Palavras (4 Páginas) • 252 Visualizações
1.1.1 Alocação de memória
Consiste no processo de solicitar/utilizar memoria durante o processo de execução de um programa. A alocação de memória no computador pode ser dividida em dois grupos:
• Alocação Estática: os dados tem um tamanho fixo e estão organizados sequencialmente na memória do computador. Um exemplo típico de alocação estática são as variáveis globais e arrays;
• Alocação Dinâmica: os dados não precisam ter um tamanho fixo, pois podemos definir para cada dado quanto de memória que desejamos usar. Sendo assim vamos alocar espaços de memória que não precisam estar necessariamente organizados de maneira sequencial, podendo estar distribuídos de forma não ordenada na memória. Na alocação dinâmica, vamos alocar/desalocar blocos de memória, de acordo com a nossa necessidade, reservando ou liberando blocos de memória durante a execução de um programa. Para poder “achar” os blocos que estão dispersos ou espalhados na memória usamos as variáveis do tipo Ponteiro.
1.1.2 Ponteiros em C
A programação em C permite que o programador referencie a posição de objetos bem como os próprios objetos.
É possível declarar uma variável cujo o tipo de dado seja um ponteiro e cujos possíveis valores sejam posições de memoria.
Sob vários aspectos, um ponteiro é como qualquer outro tipo de dado em C. Os valores dos ponteiros podem ser atribuídos como quaisquer outros valores.
1.1.3 Estruturas de dados e C
A estrutura de dados envolve em duas metas complementares, primeira é identificar e desenvolver entidades e operações matemáticas e determinar suas classes de problemas e a segunda é determinar representações para essas entidades abstratas e implementar as operações abstratas sobre essas representações concretas.
A primeira consiste em vislumbrar um tipo de dado de alto nível como ferramenta que pode ser usada para solucionar outros problemas, e a segunda consiste em implementação de tal tipo de dado como um problema a ser resolvido usando os tipos de dados já existemtes.
1.1.4 Vetores em C
A forma mais simples de um vetor é um vetor unidimensional, poder ser definido como um conjunto finito e ordenado de elementos homogêneos. Por homogêneo entende-se que todos os elementos do vetor devem ser do mesmo tipo.
O menor elemento do índice de um vetor é chamado de limite mínimo e, em C, é sempre o 0, e o maior elemento é chamado de limite máximo.
Uma característica importante do vetor é que os limites máximo e mínimo não podem ser alterados durante a execução de um programa.
Para alterar o tamanho do vetor dever ser feito na declaração e no comando for.
1.1.5 Implementando vetores unidimensionais
Um vetor unidimensional poder ser implementado da seguinte forma em C:
Int b[100];
Quer dizer que ira reservar 100 posições sucessivas de memória, cada um suficientemente grande para conter um único inteiro. O endereço da primeira é chamado de endereço base do vetor b e é indicado por base(b).
Em C, todos os elementos de um vetor tem tamanho fixo, predeterminado. Porem em algumas linguagens permitem vetores de vários tamanhos.
Um método para implementar um vetor de elementos com tamanhos variável é reservar um conjunto de posições de memoria, cada uma das quais armazenando um endereço. O conteúdo de cada posição de memória é um elemento do vetor, de tamanho variável, em alguma parte da memória.
A informação de tamanho fixo para o elemento de tamanho variável de um vetor, armazenada na área de memória contígua, é frequentemente chamada de cabeçalho.
1.1.6 Operações com strings de caracteres
A implementação de funções em C consiste em algumas operações primitivas sobre strings de caracteres, para essas funções presumiremos declarações globais:
#define STRSIZE 90
Char string[STRSIZE]
A primeira função determina o tamanho da string.
strlen(string)
char string[ ];
{
int i;
for (i=0;strng[i] !=’\0’; i++);
return(i);
}
1.1.7 Estruturas em C
Uma estrutura é um grupo de itens no qual cada item é identificado por um identificador próprio, sendo que cada um deles conhecido
...