BuscarEntrar al ChatboxPortal del foroÍndiceSpellsRegistrarseConectarseGrupos de Usuarios
Eventos Actuales
¡ Bienvenido Invitado!

Editar Perfil

Tus temas
Tus Mensajes ()

Enlaces rápidos








Comparte | .
 

 Dudas con estructura de datos

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
io
Aprendiz
avatar


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 15
Reputación Reputación : 5
Monedas de oro : 238
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Dudas con estructura de datos Miér Ene 29, 2014 8:40 pm

Hola , trataba de implementar algo y me he quedado trabado, necesito implementar un struct o guardar de alguna otra forma 6 numeros enteros en un array dentro de un struct que extiende a un array, pero el problema está en que no doy con el algoritmo necesario para manejar la forma en que se agregan los elementos es decir tengo 6 elementos que guardar pero cada uno ocuparia un slot sin embargo no puedo definir el orden en que se guardan los elementos y luego asignar otro elemento a esta lista
Ejemplo:

Código:

//digamos que estas son las posiciones guardadas de forma aleatoria en el array

6=[1]
0=[2]
1=[3]
3=[4]
0=[5]
2=[6]

teniendo este caso necesito un algoritmo o alguna forma para que al asignar un nuevo elemento a la lista encuentre con el menor numero de iteraciones posibles una posicion que contenga 0 (partiendo de que las posiciones 1 , 3 , 4 ,6 estan ocupadas)



lo de arriba es la forma que realmente tiene el array , pero digamos que por oscuras razones no puedo iterar todo el array por lo tanto solo puedo recuperar las posiciones que estan ocupadas
quedando mi array de salida algo asi:
Código:

2=[1]
3=[2]
1=[3]
6=[4]
// aqui es donde necesito de alguna manera conocer las possiciones que no están ocupadas para agregar una nueva posicion al array los numeros entre []representan los indices del array y los otros los valores almacenados , necesito encotnrar dentro de los valores almacenados el menor numero que esté disponible para asignar el array


PD : perdon por no haber sido lo suficientemente especifico desde el principio Very Happy


Última edición por io el Jue Ene 30, 2014 12:25 am, editado 3 veces (Razón : información incompleta)
Volver arriba Ir abajo
WonderWoman
Capitán
avatar


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 128
Reputación Reputación : 27
Monedas de oro : 828
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Re: Dudas con estructura de datos Miér Ene 29, 2014 9:17 pm

No se si te servirá, el siguiente código lo uso siempre para generar IDs.
Llamas a ObtenerID() y retorna un entero que podes usar como posición de un array o tabla hash para guardar tu integer allí.
Si eventualmente una posición de tu array se vuelve 0, llamas a DestruirID(Posición que acabas de vaciar) y queda liberado para que cuando pidas otro ID te pueda devolver esa posición.


Código:
[jass]
globals
    private constant integer OBJETOIDPOS = -1
    private integer IDS = 0
    private integer array IDLIST
    private hashtable ID_hash = InitHashtable()
endglobals

function ObtenerID takes nothing returns integer
   local integer id = 0
    set IDS = IDS + 1
    set id = IDLIST[IDS]
    if id == 0 then
        set IDLIST[IDS] = IDS
        set id = IDS
    endif
    call SaveInteger(ID_hash, OBJETOIDPOS, id, IDS)
    return id
endfunction

function DestruirID takes integer id returns nothing
    local integer idpos = 0
 if id > 0 and HaveSavedInteger(ID_hash, OBJETOIDPOS, id) then
 set idpos = LoadInteger(ID_hash, OBJETOIDPOS, id)
 set IDLIST[idpos] = IDLIST[IDS]
 call SaveInteger(ID_hash, OBJETOIDPOS, IDLIST[IDS], idpos)
 set IDLIST[IDS] = id
 call RemoveSavedInteger(ID_hash, OBJETOIDPOS, id)
 set IDS = IDS - 1
 endif
endfunction
[/jass]


and it makes me wonder...
Volver arriba Ir abajo
Ruke

avatar


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 297
Reputación Reputación : 62
Monedas de oro : 1675
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Re: Dudas con estructura de datos Miér Ene 29, 2014 11:52 pm

@WonderWoman escribió:
...



Se... o podes usar lo siguiente:

Código:
[jass]struct s
   static method create takes nothing returns thistype
      local thistype this = thistype.allocate()
      
      if ( this > 6 ) then
         call this.dellocate()
         return 0
      endif
      
      return this
   endmethod
endstruct[/jass]
Volver arriba Ir abajo
Contenido patrocinado




Mensaje(#) Tema: Re: Dudas con estructura de datos

Volver arriba Ir abajo
 

Dudas con estructura de datos

Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.

 Temas similares

-
» Datos soldados Black ops
» Armas del Alatreon
» Resuelvo dudas de química, física o matemáticas.
» Dudas tontas
» DARK SOULS - DUDAS? SECRETOS? Cuentalo aqui.

Permisos de este foro:No puedes responder a temas en este foro.
Warcraft III - WorldEditor :: Zona de Aprendizaje(Dudas) :: Jass (Detonadores)-