Fórum Implementar fila #413603
01/03/2012
0
procedure InsereItem(psItem: string)
Function RemoveItem: string
Function TotalItens: integer
A fila não deverá ter limite de itens, podendo se expandir conforme a necessidade. Quando não houverem itens na fila, a função RemoveItem deve retornar um string vazio.
implementar um formulário que permita ao usuário inserir strings na fila, remover e exibir o último item da fila, e obter o total de itens presentes na fila.
utilizar as funções VarArrayCreate e VarArrayRedim na implementação do procedimento InsereItem, somente VarArrayRedim na implementação da função RemoveItem, e as funções VarIsNul, VarIsEmpty e VarArrayHighBound na implementação da função TotalItens.
Valdelir Castanheiro
Curtir tópico
+ 0Posts
01/03/2012
Joel Rodrigues
então vou te dar as dicas de como fazer e você começa a tentar implementar.
*Fila (FIFO) = coleção de dados onde o primeiro item a ser inserido é também o primeiro a ser removido.
Na implementação dos métodos, utilize o seguinte raciocínio:
procedure InsereItem(psItem:string)
- Aumenta o comprimento do vetor em uma unidade (1);
- Adiciona o item na última posição (comprimento - 1);
function RemoveItem:string
- Retorna o primeiro item (índice zero);
- Diminui o comprimento do vetor em uma unidade (1);
- - Aqui pode ser preciso que você reduz o índice de cada item, ou seja, cada elemento de índice N vai cair uma posição (N-1);
function TotalItens:integer
- Use as funções VarArrayIsEmpty e VarArrayIsNull para verificar se o vetor existe e contém itens;
- Use a função VarArrayHighBound para retornar a quantidade de itens no vetor;
Bem, a lógica é essa.
Boa sorte.
Gostei + 0
01/03/2012
Valdelir Castanheiro
Gostei + 0
01/03/2012
Guinther Pauli
O próprio Delphi já possui os algoritmos prontos para Pilha, Fila e outras coleções, inclusive genéricas. Dê uma olhada na unit Contnrs nos fontes da VCL, lá consta o fonte completo da implementação da classe TQueue, pode ajudar nos seus estudos
Att,
Guinther Pauli
https://www.devmedia.com.br/guintherpauli
http://www.twitter.com/guintherpauli
http://facebook.com/guinther.pauli
http://gpauli.com
Gostei + 0
04/03/2012
Marco Salles
var
PilhaString: TStack<string>
begin
PilhaString := TStack<string>.Create;
try
PilhaString.Push(primeiro);
PilhaString.Push(segundo);
PilhaString.Push(ultimo);
ShowMessage(PilhaString.Peek);
ShowMessage(PilhaString.Pop);
ShowMessage(PilhaString.Pop);
ShowMessage(PilhaString.Pop);
finally
PilhaString.Free;
end;
ps) se não me falha a memória não existe o método Top nesta classe
end;
Gostei + 0
06/03/2012
Valdelir Castanheiro
tentei mas não consegui sera que alguém tem um exemplo pronto?
a. Procedure InsereItem(psItem: string)
b. Function RemoveItem: string
c. Function TotalItens: integer
Não poderá ser utilizada nenhuma CLASSE ou OBJETO na implementação dos procedimentos e funções acima.
A fila não deverá ter limite de itens, podendo se expandir conforme a necessidade. Quando não houverem itens na fila, a função RemoveItem deve retornar um string vazio.
Para testar a fila, implementar um formulário que permita ao usuário inserir strings na fila, remover e exibir o último item da fila, e obter o total de itens presentes na fila.
Dicas: utilize as funções VarArrayCreate e VarArrayRedim na implementação do procedimento InsereItem, somente VarArrayRedim na implementação da função RemoveItem, e as funções VarIsNul, VarIsEmpty e VarArrayHighBound na implementação da função TotalItens.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)