Buchempfehlung
MySQL kurz & gut
MySQL kurz & gut
Das preiswerte Taschen- buch stellt MySQL-rele- vante Inhalte systematisch und knapp dar, sodass es sich optimal zum Nach- schlagen beim Pro- grammieren eignet. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

Summen gerader/ungerader Elemente einer Linked List (rekursiv)

Uploader:RedakteurSt_W
Datum/Zeit:16.05.2012 21:56:23

'Gesucht ist die Summe aller Elemente an geraden/ungeraden Positionen. Verwenden
'Sie dafur zwei indirekt rekursive Algorithmen, von denen einer die Elemente an geraden
'und der andere die an den ungeraden Positionen aufsummiert.
'
'Schnittstelle:
'  int sumEven(Node n)
'  int sumOdd(Node n)
'  // n ist der erste Knoten der Liste

Type listt
    n As listt ptr
    v As Integer
End Type

Declare Function odd(n As listt Ptr) As Integer
Declare Function even(n As listt Ptr) As Integer

Dim As listt a1, a2, a3, a4, a5, a6, a7

a1.n = @a2
a2.n = @a3
a3.n = @a4
a4.n = @a5
a5.n = @a6
a6.n = @a7
a7.n = 0

a1.v = 3
a2.v = 5
a3.v = 2
a4.v = 7
a5.v = 5
a6.v = 1
a7.v = 4


Function even(n As listt Ptr) As Integer
    If (n->n = 0) Then Return 0
    Return odd(n->n)
End Function

Function odd(n As listt Ptr) As Integer
    If (n->n = 0) Then Return n->v
    Return n->v + even(n->n)
End Function


Print odd(@a1)

Print even(@a1)

Sleep