PDA

Visualizza la versione completa : [C] Creazione di una lista


s4t4n4
15-05-2007, 12:33
salve a tutti ho un problemino con la programmazione in c ho scostruito un programma client - server con un server e 2 client, ai client una volta connessi viene chiesto di identificarsi tramite un username una volta loggati la chat comincia fino a quando uno dei due o il server decide di chiudere fin qui tutto ok... il problema che devo fare una lista consultabile dai client che riporti il nome degli utenti online quindi se un utente esce si disconnette va cancellato da tale lista... mi potete dare una mano a costruire questa lista ? Premetto che io sono davvero un neofita del linguaggio c ho sempre lavorato in java... Ringrazio tutti coloro che decideranno di darmi una risposta... grazie a tutti a presto.. :dh: :bh:

magix2003
15-05-2007, 12:54
Innanzitutto devi pensare al design della lista. Che tipo di lista vuoi fare? Collegamento singolo, collegamento doppio, circolare ecc. Poi devi pensare a come accedervi, FIFO(First In First Out) o LIFO (Last In First Out).

In generale per creare una lista devi fare una struct di un elemento.




struct Node {
int key; //valore
struct Node *next; // puntatore al prossimo nodo
};

struct Node *head; //puntatore al primo nodo



Questa la lista pi semplice possibile. E' del tipo:
head -> elem1 -> elem2 -|

Spero di averti chiarito un p le idee...

Ciao Giorgio

s4t4n4
15-05-2007, 13:00
mmmm nn tanto... nel senso la lista solo una lista di al massimo 2 elementi quindi deve essere semplice nn importa se fifo filo o deque non ha alcuna importanza... l'importante che sia richiamabile dai client tramite un comando ad esempio digitanto solo L mi serve una cosa molto semplice almeno in parole ma nn ho la piu pallida idea di come fare...

magix2003
15-05-2007, 13:04
Scusami, ma visto che sai gi che saranno solo 2 elementi, non ti conviene usare un array?

s4t4n4
15-05-2007, 13:07
no purtroppo la specifica richiede espressamente una lista...

magix2003
15-05-2007, 13:13
Allora, come ti dicevo prima di tutto devi creare la struttura di un elemento come ti ho fatto vedere prima. Poi crei un puntatore al primo elemento della lista, che inizialmente settato a NULL. Poi devi fare delle funzioni che inseriscano, cancellino e cerchino un elemento. Questo non facilissimo se non hai almeno una vaga idea di cosa sia una lista, quindi ti consiglio di leggere questo link Linked List (http://en.wikipedia.org/wiki/Linked_list).

s4t4n4
15-05-2007, 13:16
ok adesso leggo e vi faccio sapere grazie a tutti cmq gia in partenza...

Loading