2011-01-05 9 views
0

Ich bin neu in der Programmierung und nicht viel über verkettete Liste weiß ... mir helfen bei der Codierung program-- einErstellung der Datenbank mit dynamischer Speicherzuweisung in C

Nehmen Daten von Benutzern und Ihre Datenbank erstellen.

  a>Data: Name, Age, Date of birth 
      b>Memory for each entry should be dynamically created. 

Ich habe eine struktur- struct Datenbank erstellt { char name [25]; int Alter [5]; int dob ​​[10]; Strukturdatenbank * next; }; Sag mir, wie jetzt gehen ...

+0

Für Speicher dynamisch in 'C' Zuweisung, suchen Sie nach 'malloc' und 'frei'. –

+0

Ja definitiv muss ich malloc und frei verwenden, aber ich dnt knw, wie man Linkliste schafft. Innerhalb verknüpfter Liste nur ich benutze malloc und frei ,, richtig? – kamakshi

+0

suchen Sie in dem Einführungsbuch, das Sie verwenden. Bitte sagen Sie mir nicht, dass Sie programmieren wollen, indem Sie Fragen zu stackoverflow stellen. Das wäre ein schlechter Weg. –

Antwort

0
struct database { 
    char name[25]; 
    int age[5]; 
    // in my opinion you should only keep dob, since age would have to be constantly updated 
    int dob[10]; 
    struct database *next; 
    } TCel, *TList, **Alist; 

Die Grundidee ist, dass wenn Sie eine neue cel zu erstellen, verwenden Sie die ‚next‘ Zeiger, um es in der Liste zu Kette. Zum Beispiel können Sie eine neue Zelle am Ende der Liste hinzu:

AList InsEnd(AList aL, Info e) 
{ 
    TLista aux; 
    // allocate cel and set the information inside it 
    aux = AlocCel(e);      
    if (!aux) return aL;    
    while (*aL != NULL) 
     aL = &(*aL)->next; 
    // linking the node 
    *aL = aux;        
    return aL;        
} 

oder

TList InsEnd2(TList aL, Info e) 
{ 
    TLista aux; 
    aux = AlocCel(e); 
    if(!aux) return aL; 
    while(aL->next != NULL) 
     aL = aL->next; 
    // linking the node 
    aL->next = aux; 
    return aL; 
} 
+0

Wie überprüft man den Fehler für die eingegebenen Daten? bedeutet, wenn jemand 12345 als Name eingegeben hat, wie man es überprüft und eine Fehlermeldung ausdruckt, die auch für das Alter ich möchte fragen .. – kamakshi

+0

Für das gegebene Beispiel sollte das alles in der AlocCel Funktion vielleicht gemacht werden? Wie auch immer, die Fragen, die Sie stellen, sind sehr einfach. Sie können entweder ASCII-Werte oder Funktionen wie isdigit (char) oder isalpha (char) aus der ctype.h-Bibliothek verwenden. Vielleicht möchten Sie diesen Link zu überprüfen: http://en.wikipedia.org/wiki/Ctype.h – Chris