dissabte, 17 de maig del 2008

Llistes dinàmiques en C (Part 2)

Amb les llistes dinàmiques tenim un petit ventall d'operacions o accions que podem fer:

Afegir o insertar un node, al principi de la llista, al final o en una posició determinada.
Borrar elements o nodes.
Buscar o localitzar elements.
Moure's a través de la llista, anterior, següent, primer.

Acció d'insertar un element o node en una llista buida.

És potser el cas més senzill.Ja tenim el node a insertar i per descomptat un punter que apunta a aquest node i un altre punter que apunti a la llista que valdrà NULL.És a dir:

struct node *llista=NULL; // el punter de la llista
struct node *pnou; // el nou node a inserir

El procés d'inserir seria el següent:

pnou->seguent=NULL;
llista=pnou;

Gràficament seria:

dimecres, 7 de maig del 2008

Llistes dinàmiques en C


Una de les aplicacions més potents i interessants de l'assignació dinàmica de memòria i els punters en el llenguatge C són les llistes o estructures dinàmiques de dades. Les estructures bàsiques en c i c++ tenen una important limitació: no poden canviar de tamany en temps d'execució, és a dir, si reservem una certa quantitat de memòria per enmagatzemar una sèrie de dades en una matriu o un vector per exemple, el nombre d'elements d'aquesta matriu o vector és decideix en la fase de disseny, abans de que el programa executable sigui creat, per tant no permeten el canvi de tamany en temps d'execució.

Les estructures dinàmiques ens permeten crear estructures de dades que s'adapten a les necessitats reals del nostre programa, reservan l'espai de memòria just i necessari que la nostra aplicació utilitzarà.

Les estructures de dades dinàmiques estàn formades per altres estructures a les quals anomenarem nodes. Aquests nodes o elements agrupan les dades amb les quals el nostre programa treballarà, i a més , un o més punters a la mateixa estructura el qual ens servirà per a desplaçar-nos per tots els nodes o elements que formen la llista.
Un exemple d'estructura bàsica d'un node podria ser el següent:

struct node {
int num;

struct node *seguent;
}


El camp seguent pot apuntar a un node o element de la mateixa llista i així succesivament.
És a dir, cada node o element manté una relació amb el node anterior i amb el següent si aquests existeixen.

Continuarà .....

dijous, 1 de maig del 2008

Eyeos, sistema operatiu virtual

EyeOs és un 'sistema' operatiu virtual on-line.Potser, més aviat, és una aplicació d'escriptori virtual però amb moltes característiques d'un sistema operatiu.És de codi lliure, gratuit i multiplataforma.Està implementat amb PHP, AJAX, JavaScript i HTML aprofitant el poder que cadascun d'aquests llenguatges ofereixen en un entorn web.El paquet bàsic d'aplicacions que venen per defecte incorpora les eines típiques d'una suite ofimàtica com processador de texte, calendari, agenda, etc.No necessita instal.lació, simplement un navegador que accepti PHP, Ajax i en alguns casos Flash.

Podem descarregar l'aplicació de forma totalment gratuita i 'pujar-la' a un servidor web propi.
Això sí, aquest servidor haurà d'admetre codi Php 5.Si no disposem d'un servidor web particular, sempre podem utilitzar un de gratuit que els propis creadors de l'aplicació posen a disposició de
qualsevol usuari.

Aquesta és una iniciativa d'un petit grup de programadors de Barcelona quan a l'any 2005 se'ls hi va ocórrer la idea després d'haver vist l'éxit d'altres projectes basats amb les mateixes tecnologies com Flicr.com o Del.icio.us.

És en definitiva, un nou concepte d'enmagatzament virtual, amb un ventall de posibilitats i utilitats realment extraordinàri.

Per descarregar-vos l'aplicació podeu fer clic aquí: http://eyeos.org/ca/
Si voleu utilitzar el servidor gratuit de eyeos, cliqueu el següent enllaç: http://eyeos.info/