🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #17874

Re: Que estructura de datos?

#17874
From: batsman batsman
Date: Thu, 21 Oct 1999 00:00
73 lines
4233 bytes
-----BEGIN PGP SIGNED MESSAGE-----

In article <7ucb80$4hu$2@talia.mad.ttd.net>, Hadrian Candela wrote:
>Hola!
>
>Estoy aprediendo a programar, con lo que tengo bastantes problemas para
>desarrollar programas algo grandes.
>
>Actualmente trabajo en un programa para llevar las cuentas, listados y
>distintos grupos de trabajo de una organizaci�n juvenil. En ella, todos los
>asociados pagan una cuota de 500 pts cada dos meses y si se pasan 6 meses
>sin pagar (3 cuotas) se les da de baja (una baja l�gica, para no tener que
>volver a meter todos los datos una vez que se acuerda de pagar).
>Que estructura de datos me recomendariais para llevar las cuotas pagadas por
>un asociado?

Supongo que no necesitar�s manejar m�s de unos pocos cientos de registros
(�tal vez miles?) as� que la soluci�n que expongo, aunque emplea *MUCHA*
memoria, deber�a valer, y adem�s es lo m�s comodo si est�s trabajando en C.

Mantienes una lista doblemente enlazada con todos los registros. Cada uno
contiene todos los datos que necesites en una struct.
Por otro lado puedes tener una tabla hash indizada por nombres que almacene
punteros a elementos de la lista anterior, e incluso un hash de los grupos
de trabajo cuyos elementos sean a su vez un hash con todos los miembros.
Tambi�n puedes usar un hash con todos aquellos que no han pagado ("baja
l�gica").
 
En resumen, mantienes todos los datos en una �nica lista doblemente
enlazada, gigante y desordenada, y por otro lado te creas cuantos hashes te
hagan falta para un acceso m�s sencillo.
Para salvar los datos tan s�lo almacenas la lista, los hashes los puedes
reconstruir (al iniciar el programa) a partir de ella.
Cuando modificases los datos de un registro, simplemente har�as el
cambio en la lista; tan s�lo tendr�as que actualizar los hash si quitases 
elementos.

Repito, es una soluci�n derrochadora de RAM, pero c�moda. En especial si
usas GLIB para las estructuras de datos...

- -- 
- -----BEGIN CUTRE-CODE EMAIL-----
     Code-Method: Dual-ROT
     Code-Comment: facilito, el primer n�mero es DOCE y el segundo es el
doble de 4

     pshkasb@uwcuwlwwg.qga
- -----END CUTRE-CODE EMAIL-----
Informaci�n sobre c�mo automatizar la descodificaci�n de esta y otras firmas
en http://www.geocities.com/SiliconValley/Vista/4289/slrn/
     �Protege tu direcci�n de los programas de b�squeda autom�tica!
              _           _                             
             | |__   __ _| |_ ___ _ __ ___   __ _ _ __  
             | '_ \ / _` | __/ __| '_ ` _ \ / _` | '_ \ 
             | |_) | (_| | |_\__ \ | | | | | (_| | | | |
             |_.__/ \__,_|\__|___/_| |_| |_|\__,_|_| |_|
  ________________________________________________________________
 |Visit   |  http://www.geocities.com/SiliconValley/Vista/2075    |
 |Linux   |  http://www.geocities.com/SiliconValley/Vista/4289    |
  ----------------------------------------------------------------

-----BEGIN PGP SIGNATURE-----
Version: 2.6.3ia
Charset: noconv

iQEVAwUBOA+Pc70Y27yr0iefAQHnGwf9GHP+Alm6d8TKfGrOWLblZ7/F9UudxbtK
CdsVZNF4kR4o3RMHKBR2l0PWvciWAl2IhudioSHHFVVcvqqCuiZmsG0Zr7TAd/cs
8AQhh0JE0OYk52ATFICHIkJwZASomO/mBFDRWeJqFw4v6dMjos67oFTSS9IW29Hl
IC5gcNGES2Alw+1rRZSg9xzk4HA9exL/2LpDHNkx0koacliKFV65ath+TQOOIryY
GBCNWeg6epFagpGngsOPyw2CSHg1JvezvcilxgKPq8xH+mcTMziLvZfiKIVVY6iI
NFyFDTjqcmnN0MgV7Ya12hV3KXhIHB7Vk+ycs8j4dKaXvxFyaGBUTQ==
=lH7f
-----END PGP SIGNATURE-----
Technical Details
Message-ID: <p13ou7.cd3.ln@simpsons4ever>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <7ucb80$4hu$2@talia.mad.ttd.net>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,38eb2648a1d0a452
X-Google-Attributes: gidf86c8,public
From: batsman@simpsons4ever. (batsman)
Subject: Re: Que estructura de datos?
Date: 1999/10/21
Message-ID: <p13ou7.cd3.ln@simpsons4ever>
X-Deja-AN: 539628820
Content-Transfer-Encoding: 8bit
References: <7ucb80$4hu$2@talia.mad.ttd.net>
Content-Type: text/plain; charset=iso-8859-1
X-Complaints-To: abuse@bt.es
X-Trace: titan.bt.es 940686016 2459 212.49.137.184 (23 Oct 1999 13:40:16 GMT)
Organization: Debian 2.01 HAMM User
Mime-Version: 1.0
Reply-To: Usa el programa de descodificación 
NNTP-Posting-Date: 23 Oct 1999 13:40:16 GMT
Newsgroups: es.comp.os.linux.programacion