[Off] Desafio - Estrutura de dados : Fila
#1

Em contato com o membro Willian_Luigi , resolvemos criar um novo desafio utilizando o mesmo intuito do [Desafio] Estrutura Pilha, que й dar uma movimentada no fуrum, lanзo-lhes um outro pequeno desafio, bem parecido com o primeiro, porйm desta vez й o "inverso".

Estrutura em fila, й bem parecido com a estrutura pilha, porйm ao em vez de utilizar o princнpio de LIFO, ele utiliza o princнpio de FIFO, ou seja, First In First Out.

Basicamente o que diferencia a fila da pilha й a ordem de saнda dos elementos. Enquanto na pilha o elemento retirado й sempre o ъltimo a entrar (o do topo da pilha), na fila sempre й retirado o primeiro elemento a entrar na estrutura. Podemos fazer uma analogia com uma fila de banco por exemplo, onde a primeira pessoa a ser atendida й a que chega primeiro. А medida que outras pessoas chegam na fila, deverгo permanecer na fila aguardando que sejam atendidas, seguindo este critйrio.

Mйtodos:
  • EnQueue Adiciona um elemento ao final da fila
  • DeQueue Remove um elemento ao inнcio da fila
Boa sorte a todos.
Reply
#2

OBS: alguns adentros que eu gostaria de deixar padrгo como no tуpico passado, a estrutura й pra ser feita utilizando VETOR(pra quem pretende fazer com outras linguagens), ou seja, nгo й pra usar objetos.


E eu sei que pra algumas pessoas nгo conta nada, mas pra outras conta muito, entгo, pra motivar...
Quem fizer o desafio vai ganhar +4 rep.
Reply
#3

Quote:
Originally Posted by Willian_Luigi
View Post
OBS: alguns adentros que eu gostaria de deixar padrгo como no tуpico passado, a estrutura й pra ser feita utilizando VETOR(pra quem pretende fazer com outras linguagens), ou seja, nгo й pra usar objetos.
Obrigado, realmente acabei me esquecendo de citar isto.
Quote:
Originally Posted by Willian_Luigi
View Post
E eu sei que pra algumas pessoas nгo conta nada, mas pra outras conta muito, entгo, pra motivar...
Quem fizer o desafio vai ganhar +4 rep.
+7 rep*.
Reply
#4

REMOVED
Reply
#5

Code:
# -*- encoding: utf-8 -*-

class Queue():
	queue = []

	def __init__(self):
		pass

	def add(self, v):
		self.queue.append(v)

	def remove(self):
		self.queue = filter(lambda x: x != self.queue[0], self.queue)

	def show(self):
		print self.queue
obs Nгo entendi a parte de tirar da fila. Eu escolho o valor a ser tirado ou ele tira automaticamente o primeiro? Eu botei pra tirar automaticamente o primeiro.
Reply
#6

Algum Exemplo ? de como fazer este desafio ?
Reply
#7

@JoaoPedro, ele tira o primeiro elemento que entrou.
Essa й a diferenзa da pilha pra fila, a fila й como se fosse uma fila comum...
Se eu entrar na fila, e vocк entrar depois, o primeiro a ser chamado(sair) sou eu, e depois vocк...
Reply
#8

Entгo estб fazendo o esperado. Quem quiser testar:

Code:
q = Queue()
q.add(1)
q.add(2)
q.add(3)
q.add(4)
q.add(5)
q.remove()
q.remove()
q.add(5)
q.show()
Reply
#9

@shittt, nгo tem exemplo, a estrutura jб foi explicada...
Vocк precisa pensar numa lуgica que possa suprir a estrutura da forma como ela foi explicada.

A fila criada, serб um vetor.
Quando utilizar o mйtodo de inserir na fila, o item que vocк passar como parвmetro vai pro vetor, quando vocк usar o remover, ele removerб o primeiro elemento que entrou.

Basta pensar na lуgica agora.
Reply
#10

Difнcil por nгo ter uma funзгo que cheque os valores, mas com um pouco de esforзo consegui

pawn Code:
new dvalor, rvalor, valor;

dvalor = ENQUEUE;
rvalor = DEQUEUE;

function Add(){

   dvalor ++;
   valor ++;
   return 1;
}

function Remove(){
 
   if(valor == EOS) return 0;
   rvalor;
   return 1;
}
Code feito bem mais na lуgica. Nгo precisa me reputar.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)