Uma fila de prioridades é uma estrutura de dados útil em problemas nos quais você precisa encontrar rápida e repetidamente o maior elemento de uma coleção de valores e removê-lo desta coleção.
Foram implementados os métodos de fila de prioridades, para um vetor de inteiros, em C e em Java. (Adquira por R$2,00, via PagSeguro, e receba por email)
As filas são estruturas baseadas no princípio FIFO (first in, first out), em que os elementos que foram inseridos no início são os primeiros a serem removidos. Uma fila possui duas funções básicas: ENQUEUE, que adiciona um elemento ao final da fila, e DEQUEUE, que remove o elemento no início da fila. A operação DEQUEUE só pode ser aplicado se a fila não estiver vazia, causando um erro de underflow ou fila vazia se esta operação for realizada nesta situação. (wikipedia)
Foram implementadas as funções de manipulação de fila nas seguintes linguagens: (Adquira por R$4,00, via PagSeguro, e receba por email)
As pilhas são estruturas baseadas no princípio LIFO (last in, first out), na qual os dados que foram inseridos por último na pilha serão os primeiros a serem removidos. Existem duas funções que se aplicam a todas as pilhas: PUSH, que insere um dado no topo da pilha, e PULL, que remove o item no topo da pilha. (wikipedia)
Foi implementadas as seguintes funções, na lingugagem de programação C: - flush, que reinicializa uma pilha; - size, que retorna o número de elementos; - top, que retorna o último elemento, mas não o retira da pilha; - push, que insere um dado no topo da pilha; - pull, remove o item no topo da pilha.
Com o intuito de aprender-se mais sobre estruturas de dados em C foi implementado uma estrutura e as funções para manipulá-la, de acordo com as especificações abaixo:
Vamos supor que um número real seja representado por uma estrutura em C, como esta:
typedefstruct {
intleft;
intright;
} realtype;
onde left e right representam os dígitos posicionados à esquerda e à direita do ponto decimal, respectivamente. Se left for um inteiro negativo, o número real representado será negativo.
a. Função floatToRealtype que recebe um número real e retorna uma estrutura representando esse número.
b. Função realtypeToFloat que aceita essa estrutura e retorna o número real representado por ela.
c. Rotinas add, subtract e multiply que aceitam duas dessas estruturas e definem o valor de uma terceira estrutura para representar o número que seja a soma, a diferença e o produto, respectivamente, dos dois registros de entrada.
Observação: Uma função de teste em C:
intmain(){ realtype a, b, c;
a = floatToRealtype(3.14);
b = floatToRealtype(8.4333);
c = add(a, b); printf("a+b = %f", realtypeToFloat(c));
c = subtract(b, a); printf("b-a = %f", realtypeToFloat(c));
c = multiply(a, b); printf("a*b = %f", realtypeToFloat(c));
return 0; }
Adquira o código deste programa na linguagem C (R$ 3,00 via PagSeguro):
Algoritmo de ordenação em ciência da computação é um algoritmo que coloca os elementos de uma dada sequência em uma certa ordem -- em outras palavras, efetua sua ordenação completa ou parcial. As ordens mais usadas são a numérica e a lexicográfica.
Existem várias razões para se ordenar uma sequência. Uma delas é a possibilidade se acessar seus dados de modo mais eficiente.
Fonte: wikipedia
Adquira um conjunto com 6 algoritmos de ordenação implementados em Python, C, C++ ou Java por apenas R$ 6,00. (Receba por email)