binary_heap(priority queue)

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

binary_heap(priority queue)

Mensagem por dungeon333 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 ?

dungeon333

Número de Mensagens : 351
Data de inscrição : 29/05/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum