Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

verkettete Liste

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
chutullu



Anmeldungsdatum: 18.10.2005
Beiträge: 77

BeitragVerfasst am: 20.03.2006, 11:54    Titel: verkettete Liste Antworten mit Zitat

Hi,

sieht irgendjemand den Denkfehler ?

Ich grüble nun schon ne' warum meine einfach verkettete List nicht funktioniert, ist wahrscheinlich eine kleine Sache - ich sehe sie nur nicht.

Code:
function new_list() as ln_list ptr
  dim dummy as ln_list ptr
  dummy = callocate(len(ln_list))
  dummy->num = 0
  dummy->nxt = 0
 
  return dummy
end function

function add_number (list as ln_list ptr, num as integer) as ln_list ptr
  dim dummy as ln_list ptr
  dummy = new_list()
  list->num = num
  list->nxt = dummy 
  return list
end function

rem *************************************************************************
type ln_list
  num as integer
  nxt as ln_list ptr
end type

dim t,start as ln_list ptr
dim a as integer

t = new_list()
start = t

for a = 1 to 10
  t = add_number(t,a)
next

while (start->nxt <>0)
  print start->num
  start = start->nxt
wend


Wieso wird mir immer nur das letzte Element anstatt aller Elemente der Liste ausgegeben ?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 20.03.2006, 12:52    Titel: Antworten mit Zitat

relativ einfach happy

Du hängst immer ein Element an die Liste an und gibst die Liste dann wieder zurück. Wenn du jetzt aber wieder ein element anhängst hängst du es ans erste und nicht ans letzte element an. Wenn du also in add_number aus "return list" ein "return dummy" machst funktionierts happy
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
chutullu



Anmeldungsdatum: 18.10.2005
Beiträge: 77

BeitragVerfasst am: 20.03.2006, 13:05    Titel: Antworten mit Zitat

Danke lächeln !

Das habe ich glatt übersehen mit dem Kopf durch die Mauer wollen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 20.03.2006, 18:29    Titel: Antworten mit Zitat

mir is übrigens noch was eingefallen:
dummy = callocate(len(ln_list))
dummy->num = 0
dummy->nxt = 0
callocate setzt die werte automatisch alle 0, die explizite zuweisung bräuchtest du nur, wenn du allocate (ohne c vorne) benutzen würdest.
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. 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.

 Impressum :: Datenschutz