Ajay Kumar Bharaj
Ajay Kumar Bharaj

Reputation: 1

Convert python list to tree structure in networkx

I have a list of numbers like [1, 2, 2, 3, 3, 2, 3, 3, 4] which I need to convert into a tree, like below:

             1
          /  |  \
         2   2   2
            / \  / \
           3   3 3  3
                    \
                     4

Note: within the list, each number cannot be +2 or more than +2 compared to the preceding value.

Upvotes: 0

Views: 103

Answers (1)

kaya3
kaya3

Reputation: 51037

This can be done in a natural way, using a stack of nodes:

  • Initialise an empty stack.
  • For each number x in the list:
    • Create a node node with value x.
    • Pop until either the stack is empty, or the top node in the stack has value x - 1.
    • If the stack is non-empty, add an edge from node to the node at the top of the stack.
    • Push node to the stack.
  • Return the node at the bottom of the stack; this is the root node.

Upvotes: 1

Related Questions