Article View: es.comp.os.linux.programacion
Article #17874Re: Que estructura de datos?
From: batsman batsman
Date: Thu, 21 Oct 1999 00:00
Date: Thu, 21 Oct 1999 00:00
73 lines
4233 bytes
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-mailReferences:
<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