Piesbruhder
Mitglied
Tja, ich bins mal wieder mit einer Frage zu C++ Grundlagen. Es
geht um verkettete Listen *händeÜberDemKopfZusammenschlag*.
Dank Homer habe ich jetzt schon richtig kapiert was so eine Liste
ist und wie sie vom Prinzip her funktioniert. Aber wie
deklariert (oder wie auch immer das bei Listen heißt) man die?
In meinem Buch ist natürlich ein Beispiel, aber irgendwie macht mir
das mächtige Probleme! Das liegt zum Teil daran, dass ich das
was man immer ändern kann (quasi der Name der List) und die Befehle
die immer gleich sind nicht auseinander halten kann. Also gebt, wenn ihr
was schreibt der Liste einen Namen, der ekelhaft heraus sticht.
Das wäre sehr nett. Sowas wie Brot oder so.
<hoffentlich hat das jemand verstanden was ich meine>
Hier der Beispielcode aus meinem Buch (!AchtungLang!)
Sooo! Man verzeihe mir die vielen Tippfehler. Aber wenn das eine(r)
ausführlich erklären könnte, wäre das was für die Ewigkeit.
Wenn nicht versteh ich das. Ihr habt ja auch noch anderes zu tun.
Freu mich über jede Antwort!
Bye!
geht um verkettete Listen *händeÜberDemKopfZusammenschlag*.
Dank Homer habe ich jetzt schon richtig kapiert was so eine Liste
ist und wie sie vom Prinzip her funktioniert. Aber wie
deklariert (oder wie auch immer das bei Listen heißt) man die?
In meinem Buch ist natürlich ein Beispiel, aber irgendwie macht mir
das mächtige Probleme! Das liegt zum Teil daran, dass ich das
was man immer ändern kann (quasi der Name der List) und die Befehle
die immer gleich sind nicht auseinander halten kann. Also gebt, wenn ihr
was schreibt der Liste einen Namen, der ekelhaft heraus sticht.
Das wäre sehr nett. Sowas wie Brot oder so.
<hoffentlich hat das jemand verstanden was ich meine>
Hier der Beispielcode aus meinem Buch (!AchtungLang!)
// Datei: XXXLIst.h
//DEFINITIONEN///////////////////////////////////////
typedef struct xxxListItem {
void *data;
struct xxxListItem *next;
} XXXList;
#define XXX_Result int
#define XXX_OK 0
#define XXX_MEMORY_ERROR 1
#define XXX_OUT_OF_BOUNDS 2
//MAKROS/////////////////////////////////////////////
//keine
//PROTOTYPEN/////////////////////////////////////////
XXX_RESULT xxx_List_Create(XXXList **pp_list);
XXX_RESLUT xxx_List_Insert(XXXList **pp_list, void *p_data);
XXX_RESLUT xxx_List_Insert(XXXList **pp_list, int index);
int xxx_List_Length(XXXList *p_list);
void xxx_List_Show(XXXList *p_list);
-------------------------------------------------------
//Datei: XXXList.cpp
//INCLUDES////////////////////////////////////////////
//INCLUDES////////////////////////////////////////////
#include <stdio.h>
#include <stdlib.h>
#include <"XXXList.h">
//GLOBALES////////////////////////////////////////////
// nichts
//FUNCTIONS///////////////////////////////////////////
//Startfunktion zu Testzwecken
//Diese Fu ktion erzeugt eine Liste, fügt ein paarchar Daten ein
//und löscht wieder ein Element.
void main (void)
{
//Erstes Element der Liste erzeugen
XXXList *pListe;
if (xxx_List_Insert(&pListe) !=XXX_OK)
printf ("Fehler bei der Initialisirung der Liste. \n");
if (xxx_List_Insert(&pListe, (void *)'e') != XXX_OK)
printf ("Fehler beim einfügen in die Liste. \n");
if (xxx_List_Insert(&pListe, (void *)'d') != XXX_OK)
printf ("Fehler beim einfügen in die Liste. \n");
if (xxx_List_Insert(&pListe, (void *)'c') != XXX_OK)
printf ("Fehler beim einfügen in die Liste. \n");
if (xxx_List_Insert(&pListe, (void *)'b') != XXX_OK)
printf ("Fehler beim einfügen in die Liste. \n");
if (xxx_List_Insert(&pListe, (void *)'a') != XXX_OK)
printf ("Fehler beim einfügen in die Liste. \n");
printf ("\n Zeige Liste:\n");
xxx_List_Show(pListe);
if (xxx_List_Delete(&pListe, 2) != XXX_OK)
printf("Fehler beim Loeschen aus der Liste:\n")
xxx_List_Show(pListe);
} // main
// Liste erzeugen mit RAM Initialisierung
XXX_RESULT xxx_List_Insert(XXXList **pp_list)
{
//siehe oben
{
// Einfügen am Anfang der Liste
XXX_RESULT xxx_List_Insert(XXXList **pp_list, void *p_data)
{
//siehe oben
}
// Löschen an angegebener Psoition, Start bei Index 0
XXX_RESULT xxx_List_Insert(XXXList **pp_list, void *p_data)
{
//siehe oben
}
//Länge der Liste
int xxx_List_Length(XXXList *p_list)
{
//siehe oben
}
//Angabe der Liste zu Testzwecken
void xxx_List_Show(XXXList *p_list)
{
//siehe oben
}
Sooo! Man verzeihe mir die vielen Tippfehler. Aber wenn das eine(r)
ausführlich erklären könnte, wäre das was für die Ewigkeit.
Wenn nicht versteh ich das. Ihr habt ja auch noch anderes zu tun.
Freu mich über jede Antwort!
Bye!
Zuletzt bearbeitet: