Ich verstehe, dass priorityQueue
perfekt auf Array
ist, da seine Natur in place ist.
Soll ich PriorityQueue (Heap) auf einer Liste in OCaml implementieren?
Wenn ich es auf Liste
mache, dann muss ich das in-place
entfernen und einen Weg finden, um jedes Mal
bei jedem Schritt eine neue Liste zu erstellen. Also frage ich mich, ob es sich lohnt, oder nicht.
Eigentlich habe ich eine tiefere Überlegung dazu.
Viele grundlegende
Algorithmen / Datenstrukturen wurden von in-place
erfunden (ich benutze erfunden
, weil ich verstehe, dass viele in-place so umgeformt werden können, dass sie nicht-in-place
sind).
FL empfiehlt jedoch keine veränderlichen
Dinge. Eine meiner weiteren Fragen ist wie wähle ich zwischen in-place / veränderlich
und unveränderlich
? oder in OCaml, wann sollte ich zwischen Liste
und Array
wählen?
Zum Beispiel, im obigen priorityqueue
Fall, wenn ich gebeten würde, eine priorityqueue
in OCaml zu schreiben, sollte ich Array
bevorzugen, da es natürlicher und einfacher ist, oder sollte ich Liste wählen um der Unveränderlichkeit willen?