heap erzeugen
Results 1 to 9 of 9

Thread: heap erzeugen

  1. #1
    ghost dog's Avatar
    Title
    Elite
    Join Date
    Feb 2002
    Location
    Posts
    498
    Thanks
    0
    Thanked 1 Time in 1 Post

    heap erzeugen

    hätte auch noch ne frage wie ich einen heap erzeuge.
    gibt es da grundsätzlich mehrere möglichkeiten einen heap zu erzeugen?
    muss einzig die bedinnung erfüllt sein, dass der knoten grösser als die kinder sind bzw. ist es egal ob das linke kind grösser als das rechte ist und umgekehrt?
    funktioniert das versickern quai von unten nach oben??
    fragen über fragen...
    naija. vielleicht hat jemand einige tipps für mich.
    vielen dank!
    --> ghost dog

  2. #2
    MarvinTheRobot's Avatar
    Title
    Super Moderator
    Join Date
    Feb 2002
    Location
    48° 09′ N, 16° 27' E
    Posts
    1,753
    Thanks
    121
    Thanked 105 Times in 58 Posts
    also so wie ich das verstanden hab geht das so

    man schreibt die zahlenfolge so wie sie steht in den baum hinein, element für element wie es dasteht (z.b. 1 5 6 4 3 2 9 7 8),

    1 ist an der wurzel und dann von links nach rechts auffüllen.

    dann von unten weg die falschen knoten suchen (wenn zum beispiel 6 als knoten für 9 und 2 da steht) und austauschen wobei 9 mit 6 getauscht wird.... also immer mit dem größeren von den beiden elementen.... bis das größte element oben steht und der rest auch passt, dann sollts eigentlich stimmen.

    wenn ich falsch liegt korrigiert mich bitte. ;-)


    mfg, Phil.
    Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders!
    www.chuckbronson.net
    www.spreadshirt.net/shop.php?sid=104618
    - TU-Funshirt-Shop
    Quote Originally Posted by peszi_forum
    Schiefe optik? siehe dazu den atttachment.. Und deine reaktion war wirklich robot mäßig bei antworten geben

  3. #3
    bluefoxx's Avatar
    Title
    Baccalaureus
    Join Date
    Mar 2002
    Location
    Vienna
    Posts
    537
    Thanks
    0
    Thanked 0 Times in 0 Posts
    is richtitsch! wie pavel pipovitsch oder bronco kulitschka sagen würden!

  4. #4
    MarvinTheRobot's Avatar
    Title
    Super Moderator
    Join Date
    Feb 2002
    Location
    48° 09′ N, 16° 27' E
    Posts
    1,753
    Thanks
    121
    Thanked 105 Times in 58 Posts
    anscheinend doch net.... in einem anderen thread stehts anders und im rep haben wirs auch anders gemacht.
    Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders!
    www.chuckbronson.net
    www.spreadshirt.net/shop.php?sid=104618
    - TU-Funshirt-Shop
    Quote Originally Posted by peszi_forum
    Schiefe optik? siehe dazu den atttachment.. Und deine reaktion war wirklich robot mäßig bei antworten geben

  5. #5

    Title
    Principal
    Join Date
    Feb 2002
    Location
    wien
    Posts
    59
    Thanks
    0
    Thanked 0 Times in 0 Posts
    ich stell mir das erstellen vom heap so vor:
    http://frost.feig.at/informatik-foru...0&pagenumber=2

  6. #6

    Title
    Master
    Join Date
    Feb 2002
    Posts
    126
    Thanks
    0
    Thanked 0 Times in 0 Posts
    bin ein bisserl verwirrt:
    am beginn trage ich die zahlen in meinen heap ein, der auch eine liste sein kann,
    dann suche ich von oben od. von unten die knoten, an denen die heap-eigenschaft verletzt ist?
    bsp:
    5,2,4,6,4,3,2,6 sind meine zahlen
    dann füge ich sie so in die liste ein:
    5 2 4 6 4 3 2 6 beim linkesten 2-er ist meine h-bed. verletzt->
    5 6 4 2 4 3 2 6 so und jetzt? die h-bed. ist beim link. 5-er und beim link. 2-er verletzt.

    steh irgendwie auf der leitung. hab das eigentlich scho amal checkt :-(

  7. #7
    bla's Avatar
    Title
    Master
    Join Date
    Jun 2002
    Posts
    174
    Thanks
    0
    Thanked 0 Times in 0 Posts
    ich hab mir schon anfang des semesters mal die arbeit gemacht alle sortier pseudocodes abzutippen (das warn spass )
    nach jeder versickere operation:
    beginn bei i = 3 da Math.floor(7 / 2)) 7 weil i0 = 0

    i = 3: 5,2,4,6,4,3,2,6
    i = 2: 5,2,4,6,4,3,2,6
    i = 1: 5,6,4,6,4,3,2,2
    i = 0: 6,6,4,5,4,3,2,2

    warum kann es auch in einer liste sein?
    sicher möglich ist es aber dort das 2*i (+1) te element zu bekommen dürfte etwas länger dauern.
    oder meinst du einfach du scheibst es auf dem papier als liste?
    wenn ja vergiss den letzen absatz

  8. #8

    Title
    Principal
    Join Date
    Feb 2002
    Posts
    79
    Thanks
    0
    Thanked 0 Times in 0 Posts
    2sabs: du mußt ja bei der abgerundeten hälfte des feldes anfangen und dann nach links bis zum ersten element gehen. außerdem sind wir ja in einer schleife, der 2er tauscht sich ja noch weiter. erst am ende ist die heapbedingung erfüllt.
    rechts is gas!!!

  9. #9

    Title
    Master
    Join Date
    Feb 2002
    Posts
    126
    Thanks
    0
    Thanked 0 Times in 0 Posts
    so, hab mir die 2 antworten auf meine frage durchgelesen! irgendwie kommt es mir immer so vor, als ob ich net ganz deutsch schreiben würde. wollt eigentlich nur wissen ob 5er oder 2er: das war hier die frage (und das warum!)
    hab voll verzweiflung weiter gelesen und dann wirklich:

    danke golja!
    ein wort hat genügt, um mich von der leitung zu schubsen! SCHLEIFE hat dann doch noch den schalter umgelegt!

    lg

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •