Archive for the ‘ C ’ Category

Estruturas de Dados em linguagem C – Parte II: Filas

segunda-feira, fevereiro 21st, 2011
Assim como a pilha, a fila também é uma estrutura de dados bem simples. Na pilha, os elementos são acessados somente pelo topo: o último elemento a entrar é o primeiro a sair. O funcionamento da fila, ao contrário da pilha, é descrito pela sigla FIFO (first in, first out). Os elementos são sempre inseridos/empilhados no final da fila e exluídos/desempilhados no início da fila. A estrutura fila nada mais é do que uma analogia ao conceito de fila que usamos normalmente. Ou seja, numa fila a ordem de saída é relativa à ordem de chegada (a “fila” do RU não entra neste caso, podemos descrevê-la como uma lista, uma outra estrutura de dados que será abordada futuramente nesta sequência de posts).

Um exemplo de fila na computação é a fila de impressão. Quando temos um computador ligado a uma impressora ao mandarmos imprimir os arquivos, eles vão para uma fila de impressão e assim impressos de acordo com a ordem.

Exemplo do funcionamento de uma fila: (mais…)

Estruturas de Dados em linguagem C – Parte I: Pilhas

quarta-feira, fevereiro 16th, 2011

Em janeiro fiz a matéria de Estrutura de Dados I no curso de verão da UFES. Durante o curso aprendemos sobre as estruturas de dados: pilhas,  filas,  listas e árvores. Implementei as estruturas usando a linguagem C. Vou postar um pouco do que aprendi sobre cada uma delas em partes.

PARTE I: PILHAS

A pilha ou stack é uma estrutura de dados bem simples. A sigla LIFO (last in, first out) caracteriza seu funcionamento. Todos os elementos são acessados pelo topo. Ou seja, ao inserir/empilhar um novo elemento ele passa a ser o topo da nossa pilha. E o único elemento que pode ser excluído/desempilhado é o elemento do topo. Os elementos são removidos na ordem inversa àquela em que foram inseridos. Podemos usar como exemplo uma  pilha de livros, no qual ao se colocar diversos elementos uns sobre os outros, se quisermos pegar o livro mais abaixo deveremos tirar todos os livros que estiverem sobre ele. Essa estrutura é uma das mais utilizadas na programação sendo também utilizada para acesso em vários hardwares de máquinas modernas. As principais funções implementadas na pilha para manipular os elementos são: PUSH e POP, utilizadas para empilhar e desempilhar, respectivamente.
A figura abaixo mostra o funcionamento conceitual de uma pilha: