online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
#!/usr/bin/python2.7 class Node: "the basic element of a tree" data = -1 left = None right = None def __init__(self, data: int): "constructor to initiate a node" # store data self.data = data # store reference (next item) self.left = None self.right = None return @classmethod def make(self, data: [int], index : int = 0, level_size : int = 1, prev_sum: int = 0): "constructor to initiate nodes" if index >= len(data): return None # the data to be returned ret = Node(data[index]) # note: level_size should be 2^level, so either level or level_size can be passed # but passing a variable means you don't have to calculate it 2x, so it's a bit faster child_index = index + level_size # the next index will be the current index + level_size child_index += (index - prev_sum) # plus how ever far the index passed the last level's sum # child_index = index * 2 + 1 # the expected index for the non-sparse case current_sum = prev_sum + level_size # the total number of elements reviewed next_level_size = level_size + level_size # the expected size of the next level ret.left = Node.make(data, child_index, next_level_size, current_sum) ret.right = Node.make(data, child_index+1, next_level_size, current_sum) return ret def __str__(self, level=0): "allows you to call print() on a node" ret = "-"*level+repr(self.data)+"\n" if self.left != None: ret += self.left.__str__(level+1) if self.right != None: ret += self.right.__str__(level+1) return ret def serialize(self) -> str: "will turn the entire tree into a single line string" s = "" s += str(self.data) if self.left != None or self.right != None: s += " [" if self.left != None: s += self.left.serialize() else: s += "null" s += " " if self.right != None: s += self.right.serialize() else: s += "null" s += "]" return s def get_size(self) -> int: "gets the size of the tree" s = 1 if self.left != None: s += self.left.get_size() if self.right != None: s += self.right.get_size() return s """ # demonstrate the tree API works c = Node(1) c.left = Node(2) c.right = Node(3) c.left.left = Node(4) c.left.left.left = Node(8) c.left.left.right = Node(9) c.left.right = Node(5) c.left.right.left = Node(10) c.left.right.right = Node(11) c.right.left = Node(6) c.right.left.left = Node(12) c.right.left.right = Node(13) c.right.right = Node(7) c.right.right.left = Node(14) c.right.right.right = Node(15) print("The size is ", c.get_size()) print("The value is ", c.serialize()) """ vals = list(range(1,31+1)) c = Node.make(vals) print("The size is ", c.get_size()) print("The value is ", c.serialize()) print(c)

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue