Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
chutullu
Anmeldungsdatum: 18.10.2005 Beiträge: 77
|
Verfasst am: 20.03.2006, 11:54 Titel: verkettete Liste |
|
|
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 |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 20.03.2006, 12:52 Titel: |
|
|
relativ einfach
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  _________________ "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 |
|
 |
chutullu
Anmeldungsdatum: 18.10.2005 Beiträge: 77
|
Verfasst am: 20.03.2006, 13:05 Titel: |
|
|
Danke !
Das habe ich glatt übersehen  |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 20.03.2006, 18:29 Titel: |
|
|
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 |
|
 |
|