Zum neuen Informatik-Forum >>
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Listenelement einfügen

 
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Informatikerboard.de Foren-Übersicht -> Theoretische Informatik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
TobsenMH
Gast





BeitragVerfasst am: 16. Aug 2005 18:31    Titel: Listenelement einfügen Antworten mit Zitat

Es soll die Funktion ...fuege_list_element_hinzu(...) in C programmiert werden, die ein neues Listenelement in die Liste einfügt! Das neue Listenelement soll der Funktion in Form einer Zeigervariablen übergeben werden. Das neue Listenelement soll vor dem ersten Element der Liste eingefügt werden. Ist die Liste leer, soll das einzufügende Listenelement das erste Element der Liste werden.

ich habe mir dazu mal folgendes gedacht:


void fuege_list_element_hinzu (ELEMENT*neu){
if (head==NULL){
head=neu;
} else {
head = neu;
neu -> next = head -> next;
}
return ();
}

es wäre nett, wenn du ihr da mal kurz drüber gucken würdet!
DANKE :o)
Nach oben
kurellajunior
Administrator


Anmeldungsdatum: 14.02.2005
Beiträge: 214
Wohnort: Berlin-Pankow

BeitragVerfasst am: 17. Aug 2005 00:33    Titel: Antworten mit Zitat

Dat funzt nicht. da Du den neuen schon zuweist, bevor du den alten Link umbiegst.
Es gilt immer, erst retten, dann neuzuweisen. Weißt Du was ich meine?
Mit
Code:
head = neu;
neu -> next = head -> next;

Verweist der Übergebene auf sich selbst...

_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen




Anmeldungsdatum: 12.08.2005
Beiträge: 23

BeitragVerfasst am: 17. Aug 2005 10:45    Titel: Antworten mit Zitat

du musst erst vom neuen element auf das listenelement zeigen, welches der kopf ist, dann das neue element als kopf definieren...
bei deinem code würde folgendes passieren:
anfangszusand:(z.b.)
head zeigt auf li1
lineu ist gegeben

in else passiert dann folgendes:
head zeigt auf lineu
lineu zeigt auf lineu

heißt:
du hast keinen zeiger mehr auf den rest der liste, das wars dann. also, wie kurella junior schon gesagt hat: erst retten, also
lineu zeigt auf li1
dann
head zeigt auf lineu,

ok? smile

grüße

_________________
Wasser zu Wein,
Öl zu Benzin,
Jesus war ein Biker!!!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden




Anmeldungsdatum: 12.08.2005
Beiträge: 23

BeitragVerfasst am: 17. Aug 2005 10:48    Titel: Antworten mit Zitat

da hab ich selbst noch ne frage:
ich versuche mich gerade etwas in C einzuarbeiten, ich möchte ein programm für einen GTR schreiben...

was genau macht diese zeile, was heißen dort die zeichen?
Code:
neu -> next = head -> next;

_________________
Wasser zu Wein,
Öl zu Benzin,
Jesus war ein Biker!!!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
kurellajunior
Administrator


Anmeldungsdatum: 14.02.2005
Beiträge: 214
Wohnort: Berlin-Pankow

BeitragVerfasst am: 17. Aug 2005 13:54    Titel: Antworten mit Zitat

"->" ist die Entsprechung des Punktes bei Pointern.

Wenn Du ein Objekt hast, sprichst Du Eigenshcaften und Funktionen mit Punkt "." an.

Hast Du einen Pointer auf dieses Objekt, dann musst Du den Pfeil verwenden "->"

In java wird dieser Unsinn aufgelöst, weil es nur noch Pointer gibt und alles mit Punkt gemacht wird.

_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
TobsenMH
Gast





BeitragVerfasst am: 17. Aug 2005 14:12    Titel: Antworten mit Zitat

danke für eure hilfen... habe mir gedanken darüber gemacht und das ist dabei rausgekommen:

Code:
void fuege_list_element_hinzu (ELEMENT*neu){

ELEMENT *ptr;
 if (head==NULL){
 head=neu;
 } else {
ptr = head;
head = neu;
neu->next = ptr;
}
return ();
}
Nach oben
kurellajunior
Administrator


Anmeldungsdatum: 14.02.2005
Beiträge: 214
Wohnort: Berlin-Pankow

BeitragVerfasst am: 17. Aug 2005 18:35    Titel: Antworten mit Zitat

Besser,
Optimierungsvorschlag
Code:
void fuege_list_element_hinzu (ELEMENT*neu){
 if (head==NULL){
   head=neu;
 } else {
   neu->next = head;
   head = neu;
 }
return ();
}

_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Informatikerboard.de Foren-Übersicht -> Theoretische Informatik Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum nicht herunterladen