We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
  • Practice
  • Certification
  • Compete
  • Career Fair
  • Hiring developers?
  1. Practice
  2. Functional Programming
  3. Functional Structures
  4. Tree manager
  5. Discussions

Tree manager

Problem
Submissions
Leaderboard
Discussions

Sort 6 Discussions, By:

votes

Please Login in order to post a comment

  • martin_vojtek 4 years ago+ 0 comments

    The condition "A single node will never have more than children." is not true for test case no. 15

    1|
    Permalink
  • Giulio 5 years ago+ 0 comments

    I have solved this problem but I have cheated :-) 'cause I have used a mutable data structure (in Scala).

    To solve this problem in a real "functional way" I should have used immutable data structures. This means that every time I had to change something (change value, add, delete) I should have copied/created an entire new tree with only "that" change. Well, I thought about this for a while but I found this way to approach the problem quite overwhelming. Could anybody show me how to solve this problem with immutable data structures? How do you handle the add/delete/change operations?

    1|
    Permalink
  • alexr007 8 months ago+ 0 comments

    task can be solved without zipper and everything is immutable just put the tree and navigation into two different structures

    final case class Node(value: Int, children: Vector[Node] = Vector.empty)
    final case class PathNode(link: Node, pos: Int, parent: Option[Node])
    
    0|
    Permalink
  • di98jgu 12 months ago+ 0 comments

    Learning something new is why I like this place. I did not know about zipper trees.

    But this was a very difficult task in the wrong I my mind. Solving the problem was the easy part. Geting it to pass within the allowed time frame was an entire different story.

    If you try to solve this task with erlang and you have issues with timeout, try search for

    "Erlang: Read from an input stream in a efficient way"

    Using module string will not work, use binaries. I also had to write my own split line method for the operations.

    Good luck.

    0|
    Permalink
  • Eberhofer 1 year ago+ 0 comments

    Thanks for all the pointers to the Zipper. That helped a lot. Took me a while to debug and get all the details right but that was fun!

    0|
    Permalink
Load more conversations

Need Help?


View top submissions
  • Contest Calendar
  • Blog
  • Scoring
  • Environment
  • FAQ
  • About Us
  • Support
  • Careers
  • Terms Of Service
  • Privacy Policy
  • Request a Feature