www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Vorhilfe
  Status Geisteswiss.
    Status Erdkunde
    Status Geschichte
    Status Jura
    Status Musik/Kunst
    Status Pädagogik
    Status Philosophie
    Status Politik/Wirtschaft
    Status Psychologie
    Status Religion
    Status Sozialwissenschaften
  Status Informatik
    Status Schule
    Status Hochschule
    Status Info-Training
    Status Wettbewerbe
    Status Praxis
    Status Internes IR
  Status Ingenieurwiss.
    Status Bauingenieurwesen
    Status Elektrotechnik
    Status Maschinenbau
    Status Materialwissenschaft
    Status Regelungstechnik
    Status Signaltheorie
    Status Sonstiges
    Status Technik
  Status Mathe
    Status Schulmathe
    Status Hochschulmathe
    Status Mathe-Vorkurse
    Status Mathe-Software
  Status Naturwiss.
    Status Astronomie
    Status Biologie
    Status Chemie
    Status Geowissenschaften
    Status Medizin
    Status Physik
    Status Sport
  Status Sonstiges / Diverses
  Status Sprachen
    Status Deutsch
    Status Englisch
    Status Französisch
    Status Griechisch
    Status Latein
    Status Russisch
    Status Spanisch
    Status Vorkurse
    Status Sonstiges (Sprachen)
  Status Neuerdings
  Status Internes VH
    Status Café VH
    Status Verbesserungen
    Status Benutzerbetreuung
    Status Plenum
    Status Datenbank-Forum
    Status Test-Forum
    Status Fragwürdige Inhalte
    Status VH e.V.

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Dt. Schulen im Ausland: Mathe-Seiten:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Haskell" - Haskell - Binärbaum
Haskell - Binärbaum < Haskell < Programmiersprachen < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Haskell"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Haskell - Binärbaum: Breitensuche und co.
Status: (Frage) beantwortet Status 
Datum: 15:02 Do 29.11.2007
Autor: franzigoth1

Aufgabe
Gegeben ist der HASKELL-Typ eines BinÄarbaumes data
BT = E | T Int BT BT. Dabei beszeichnet der
Konstruktor E einen leeren Baum und T i l r einen Baum, dessen Wurzel mit einer ganzen Zahl i markiert ist
und der den linken Unterbaum l und den rechten Unterbaum r hat.

1. eine HASKELL-Funktion prelin::BT->[Int], die alle Markierungen eines Binärbaumes in der Lineari-
sierung prälin (präorder) als Liste anordnet,
2. eine HASKELL-Funktion postlin::BT->[Int], die alle Markierungen eines Binärbaumes in der Lineari-
sierung postlin (preorder) als Liste anordnet,

3. eine HASKELL-Funktion bslin::BT->[Int], die alle Markierungen eines Binärbaumes in der Linearisie-
rung entsprechend der Breitensuche als Liste anordnet

Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt


Hallo...

Ich wollte mal fragen wie man die Breitensuche (Aufgabe 3) implementieren kann?
1. und 2. hab ich schon aber bei 3. steh ich auf den Schlauch.

Ich weiss, das die Breitensuche bei der Wurzel beginnt zu zählen, also:

data BT = E | T Int BT BT
bslin::BT->[Int]
bslin E            = []            
bslin (T  i  l  r) = [i]  ++ ?? (ab dieser Stelle weiss ich nicht mehr weiter!)

Wie kann man sagen, das er jetzt die nächste Stufe des Baumes abzählen soll?

Hab schon viel ausprobiert und alles war falsch, bin am verzweifeln. Vielleicht hab ich auch einen Denkfehler, keine Ahnung.
Kann mir jemand helfen???

        
Bezug
Haskell - Binärbaum: Antwort
Status: (Antwort) fertig Status 
Datum: 16:03 Do 29.11.2007
Autor: Martin243

Hallo und [willkommenvh],

ich fürchte, mit diesem Ansatz kommst du nicht weit.
Hier brauchst du einen FIFO, in den du die Unterbäume des aktuell bearbeiteten Baums reinsteckst, damit die Reihenfolge erhalten bleibt.

Dazu würde ich eine Hilfsfunktion bsl anlegen und den Aufruf von bslin so gestalten:
bslin baum = bsl [baum]

Bei einem leeren FIFO (der auch nur eine Liste ist...) hört die Rekursion auf, leere Bäume im FIFO werden übergangen und "richtige" Bäume werden ihrer Zahl beraubt und ihre Unterbäume an den FIFO drangehängt, der rekursiv bearbeitet wird.


Gruß
Martin

Bezug
                
Bezug
Haskell - Binärbaum: FiFO?
Status: (Frage) beantwortet Status 
Datum: 16:56 Do 29.11.2007
Autor: franzigoth1

Okay, ich möchte nur sagen, das ich mit Haskell erst 2 Wochen arbeite und mich noch nicht so auskenne damit.

Was ist FIFO?
Eine Hilfsfkt, die man erst implementiert?

Sorry, steh heute ziemlich neben mir, kann dir aber wirklich nicht ganz folgen, aber danke für die Antwort.

Bezug
                        
Bezug
Haskell - Binärbaum: Antwort
Status: (Antwort) fertig Status 
Datum: 17:14 Do 29.11.2007
Autor: Martin243

Hallo,

> Was ist FIFO?
> Eine Hilfsfkt, die man erst implementiert?

Nein, ein FIFO, auch Warteschlange oder Queue genannt, ist eine grundlegende Datenstruktur in der Informatik. Sie basiert auf dem "First In - First Out"-Prinzip, also wie bei einer echten Warteschlange: Das Element, das sich zuerst einreiht, wird zuerst verarbeitet.
In Haskell heißt das nur, dass immer ein Element vom Anfang der Liste verarbeitet wird, während neue Elemente hinten an die Liste angehängt werden und demzufolge auch zuletzt verarbeitet werden.
Bei der Breitensuche bewirkt man damit, dass die besuchten Teilbäume zuerst innerhalb einer Ebene abgearbeitet werden, während ihre Teilbäume hinten angestellt werden. Das Ganze wiederholt sich, bis der FIFO leer ist, weil nichts mehr reingesteckt wurde (leere Teilbäume).



Gruß
Martin

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Haskell"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.vorhilfe.de