Conectar-se
Quem está conectado
18 usuários online :: 2 usuários cadastrados, Nenhum Invisível e 16 Visitantes

Willy, Zero.

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
Data de inscrição : 29/05/2009
Número de Mensagens : 351
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   :
   :
   :
Ver perfil do usuário

binary_heap(priority queue)

em Qua 05 Maio 2010, 18:10
bom , estou tentando recriar a ds_priority do game maker , ja consegui faser algumas coisas , nao posso usar a do game maker pq vou passar para "C++" dps, ja fiz 3 scripts
1 *
priority_create
Código:

// priority_create(maxsize)
Value[argument0 + 1] = 0;
Priority[argument0 + 1] = 0;
priority_size = 0;
2 *
priority_add
Código:

//priority_add(value,priority)
var i;
priority_size += 1;
i = priority_size;
while( i > 1 and Priority[i / 2] > argument1)
{
Priority[i] = Priority[i / 2];
Value[i] = Value[i / 2];
i/= 2;
}
Priority[i] = argument1;
Value[i] = argument0;
3 *
priority_remove_first
Código:

var i,child,MaxValue,MaxPr;
MaxValue = Value[priority_size];
MaxPr = Priority[priority_size];
priority_size-= 1;
i = 1;
while(i * 2 < priority_size + 1)
{
child = i * 2;
  if Priority[child + 1] < Priority[child]
  {
  child += 1;
  }
  if MaxPr <= Priority[child]
  {
    break;
  }
  Priority[i] = Priority[child]
  Value[i] = Value[child]
  i = child;
}
  Priority[i] = MaxPr
  Value[i] = MaxValue
agora estou com problemas em faser um para mudar a prioridade de um valor na lista
igual o
ds_priority_change_priority do game maker
serah que alguem pode dar uma luz ?
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum