memory-graph 0.3.40__tar.gz → 0.3.42__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {memory_graph-0.3.40/memory_graph.egg-info → memory_graph-0.3.42}/PKG-INFO +54 -31
- {memory_graph-0.3.40 → memory_graph-0.3.42}/README.md +53 -30
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/add_one.gv +18 -18
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/avltree_key_value.gv +12 -12
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/avltree_leaf.gv +5 -5
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/avltree_linear.gv +12 -12
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/avltree_table.gv +12 -12
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/bin_search.gv +34 -34
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/bin_search_linear.gv +29 -29
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/bin_tree.gv +35 -35
- memory_graph-0.3.42/images/binary.gif +0 -0
- memory_graph-0.3.42/images/binary.py +13 -0
- memory_graph-0.3.42/images/binary0.gv +22 -0
- memory_graph-0.3.42/images/binary0.png +0 -0
- memory_graph-0.3.42/images/binary1.gv +30 -0
- memory_graph-0.3.42/images/binary1.png +0 -0
- memory_graph-0.3.42/images/binary10.gv +62 -0
- memory_graph-0.3.42/images/binary10.png +0 -0
- memory_graph-0.3.42/images/binary11.gv +54 -0
- memory_graph-0.3.42/images/binary11.png +0 -0
- memory_graph-0.3.42/images/binary12.gv +46 -0
- memory_graph-0.3.42/images/binary12.png +0 -0
- memory_graph-0.3.42/images/binary13.gv +38 -0
- memory_graph-0.3.42/images/binary13.png +0 -0
- memory_graph-0.3.42/images/binary14.gv +30 -0
- memory_graph-0.3.42/images/binary14.png +0 -0
- memory_graph-0.3.42/images/binary2.gv +38 -0
- memory_graph-0.3.42/images/binary2.png +0 -0
- memory_graph-0.3.42/images/binary3.gv +46 -0
- memory_graph-0.3.42/images/binary3.png +0 -0
- memory_graph-0.3.42/images/binary4.gv +54 -0
- memory_graph-0.3.42/images/binary4.png +0 -0
- memory_graph-0.3.42/images/binary5.gv +62 -0
- memory_graph-0.3.42/images/binary5.png +0 -0
- memory_graph-0.3.42/images/binary6.gv +70 -0
- memory_graph-0.3.42/images/binary6.png +0 -0
- memory_graph-0.3.42/images/binary7.gv +78 -0
- memory_graph-0.3.42/images/binary7.png +0 -0
- memory_graph-0.3.42/images/binary8.gv +78 -0
- memory_graph-0.3.42/images/binary8.png +0 -0
- memory_graph-0.3.42/images/binary9.gv +70 -0
- memory_graph-0.3.42/images/binary9.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/copies.gv +20 -20
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/copy_method.gv +16 -16
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/create_images.sh +6 -5
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/debugging0.gv +8 -8
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/debugging0.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/debugging1.gv +11 -11
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/debugging1.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/debugging2.gv +13 -13
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/debugging2.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/debugging3.gv +15 -15
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/debugging3.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/debugging4.gv +17 -17
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/debugging4.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/debugging5.gv +17 -17
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/debugging5.png +0 -0
- memory_graph-0.3.42/images/extension_numpy.gv +64 -0
- memory_graph-0.3.42/images/extension_numpy.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/extension_numpy.py +4 -3
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/extension_pandas.gv +8 -8
- memory_graph-0.3.42/images/extension_torch.gv +51 -0
- memory_graph-0.3.42/images/extension_torch.png +0 -0
- memory_graph-0.3.42/images/extension_torch.py +10 -0
- memory_graph-0.3.42/images/extension_torch.py~ +10 -0
- memory_graph-0.3.42/images/factorial.gif +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/factorial.py +2 -2
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/factorial0.gv +3 -3
- memory_graph-0.3.42/images/factorial0.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/factorial1.gv +7 -7
- memory_graph-0.3.42/images/factorial1.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/factorial2.gv +10 -10
- memory_graph-0.3.42/images/factorial2.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/factorial3.gv +13 -13
- memory_graph-0.3.42/images/factorial3.png +0 -0
- memory_graph-0.3.42/images/factorial4.gv +40 -0
- memory_graph-0.3.42/images/factorial4.png +0 -0
- memory_graph-0.3.42/images/factorial5.gv +46 -0
- memory_graph-0.3.42/images/factorial5.png +0 -0
- memory_graph-0.3.42/images/factorial6.gv +41 -0
- memory_graph-0.3.42/images/factorial6.png +0 -0
- memory_graph-0.3.40/images/factorial4.gv → memory_graph-0.3.42/images/factorial7.gv +14 -14
- memory_graph-0.3.42/images/factorial7.png +0 -0
- memory_graph-0.3.40/images/factorial5.gv → memory_graph-0.3.42/images/factorial8.gv +11 -11
- memory_graph-0.3.42/images/factorial8.png +0 -0
- memory_graph-0.3.40/images/factorial6.gv → memory_graph-0.3.42/images/factorial9.gv +8 -8
- memory_graph-0.3.42/images/factorial9.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/hash_set.gv +29 -29
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/immutable1.gv +4 -4
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/immutable2.gv +6 -6
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/introspect_depth.gv +56 -56
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/linked_list.gv +20 -20
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/many_types.gv +12 -12
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/mutable1.gv +4 -4
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/mutable2.gv +4 -4
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/not_node_types1.gv +6 -6
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/not_node_types2.gv +14 -14
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set0.gv +11 -11
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set0.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set1.gv +17 -17
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set1.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set10.gv +36 -36
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set10.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set11.gv +31 -31
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set11.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set12.gv +31 -31
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set12.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set13.gv +36 -36
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set13.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set14.gv +41 -41
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set14.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set15.gv +43 -43
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set15.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set16.gv +40 -40
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set16.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set17.gv +40 -40
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set17.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set18.gv +45 -45
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set18.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set19.gv +47 -47
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set19.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set2.gv +22 -22
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set2.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set20.gv +44 -44
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set20.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set21.gv +39 -39
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set21.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set22.gv +34 -34
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set22.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set23.gv +28 -28
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set23.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set3.gv +27 -27
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set3.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set4.gv +32 -32
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set4.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set5.gv +34 -34
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set5.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set6.gv +32 -32
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set6.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set7.gv +32 -32
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set7.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set8.gv +37 -37
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set8.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set9.gv +39 -39
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set9.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/rebinding1.gv +4 -4
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/rebinding2.gv +6 -6
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph/__init__.py +27 -48
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph/config.py +1 -1
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph/config_helpers.py +4 -23
- memory_graph-0.3.42/memory_graph/extension_numpy.py +33 -0
- memory_graph-0.3.42/memory_graph/extension_torch.py +6 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph/node_key_value.py +1 -1
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph/node_linear.py +1 -1
- memory_graph-0.3.42/memory_graph/pytorch_test.py +10 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph/test_memory_to_nodes.py +1 -3
- {memory_graph-0.3.40 → memory_graph-0.3.42/memory_graph.egg-info}/PKG-INFO +54 -31
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph.egg-info/SOURCES.txt +45 -2
- {memory_graph-0.3.40 → memory_graph-0.3.42}/pyproject.toml +1 -1
- memory_graph-0.3.40/images/extension_numpy.gv +0 -52
- memory_graph-0.3.40/images/extension_numpy.png +0 -0
- memory_graph-0.3.40/images/factorial.gif +0 -0
- memory_graph-0.3.40/images/factorial0.png +0 -0
- memory_graph-0.3.40/images/factorial1.png +0 -0
- memory_graph-0.3.40/images/factorial2.png +0 -0
- memory_graph-0.3.40/images/factorial3.png +0 -0
- memory_graph-0.3.40/images/factorial4.png +0 -0
- memory_graph-0.3.40/images/factorial5.png +0 -0
- memory_graph-0.3.40/images/factorial6.png +0 -0
- memory_graph-0.3.40/images/highlight.png +0 -0
- memory_graph-0.3.40/images/highlight.py +0 -15
- {memory_graph-0.3.40 → memory_graph-0.3.42}/LICENSE.txt +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/MANIFEST.in +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/-0 +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/.gif +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/.idea/.gitignore +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/.idea/images.iml +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/.idea/inspectionProfiles/profiles_settings.xml +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/.idea/misc.xml +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/.idea/modules.xml +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/.idea/vcs.xml +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/.idea/workspace.xml +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/add_one.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/add_one.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/avltree.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/avltree.py~ +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/avltree_dir.gv +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/avltree_dir.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/avltree_fail.gv +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/avltree_fail.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/avltree_key_value.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/avltree_leaf.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/avltree_linear.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/avltree_table.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/bin_search.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/bin_search.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/bin_search.py~ +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/bin_search_linear.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/bin_search_linear.py~ +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/bin_tree.gif +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/bin_tree.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/bin_tree.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/bin_tree2.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/bin_tree2.py~ +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/call_stack.txt +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/colab_example.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/copies.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/copies.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/copy_method.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/copy_method.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/create_gif.sh +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/debug.gv +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/debug.pdf +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/debug_vscode.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/debugging.gif +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/debugging.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/debugging01.gv +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/debugging02.gv +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/debugging03.gv +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/debugging04.gv +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/debugging05.gv +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/debugging06.gv +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/depth.gv +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/depth.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/extension_pandas.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/extension_pandas.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/factorial01.gv +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/factorial02.gv +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/factorial03.gv +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/factorial04.gv +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/factorial05.gv +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/factorial06.gv +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/factorial07.gv +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/hash_set.gif +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/hash_set.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/hash_set.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/hidden_edges.gv +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/hidden_edges.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/hidden_edges.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/hidden_edges.py~ +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/highlight.gv +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/immutable.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/immutable1.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/immutable2.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/introspect_depth.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/introspect_depth.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/introspect_depth.py~ +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/ipython.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/jupyter_example.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/linked_list.gif +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/linked_list.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/linked_list.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/log.txt +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/many_types.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/many_types.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/memory_graph.gv +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/memory_graph.gv.pdf +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/memory_graph.pdf +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/mutable.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/mutable1.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/mutable2.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/my_graph.gv +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/my_graph.pdf +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/name_rebinding.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/not_node_types.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/not_node_types.py~ +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/not_node_types1.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/not_node_types2.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set.gif +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set19.png~ +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/power_set8.png~ +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/pyodide.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/rebinding1.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/rebinding2.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/stack.txt +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/test.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/test.py~ +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/uva.png +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/vsc.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/images/vscode_copying.gif +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph/call_stack.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph/config_default.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph/extension_pandas.py +0 -0
- /memory_graph-0.3.40/memory_graph/extension_numpy.py → /memory_graph-0.3.42/memory_graph/extension_pytorch.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph/html_table.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph/list_view.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph/memory_to_nodes.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph/node_base.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph/node_leaf.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph/node_table.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph/sequence.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph/slicer.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph/slices.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph/slices_iterator.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph/slices_table_iterator.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph/test.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph/test_max_graph_depth.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph/test_memory_graph.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph/test_sequence.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph/test_slicer.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph/test_slices.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph/test_slices_iterator.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph/utils.py +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph.egg-info/dependency_links.txt +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph.egg-info/requires.txt +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/memory_graph.egg-info/top_level.txt +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/setup.cfg +0 -0
- {memory_graph-0.3.40 → memory_graph-0.3.42}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: memory_graph
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.42
|
|
4
4
|
Summary: Teaching tool and debugging aid in context of references, mutable data types, and shallow and deep copy.
|
|
5
5
|
Author-email: Bas Terwijn <bterwijn@gmail.com>
|
|
6
6
|
License-Expression: BSD-2-Clause
|
|
@@ -302,28 +302,50 @@ This function:
|
|
|
302
302
|
* finally returns the value of the `fun()` call
|
|
303
303
|
|
|
304
304
|
## Recursion ##
|
|
305
|
-
The call stack is also helpful to visualize how recursion works. Here we use `mg.block()` to show each step of how recursively
|
|
305
|
+
The call stack is also helpful to visualize how recursion works. Here we use `mg.block()` to show each step of how recursively `factorial(4)` is computed:
|
|
306
306
|
|
|
307
307
|
```python
|
|
308
308
|
import memory_graph as mg
|
|
309
309
|
|
|
310
310
|
def factorial(n):
|
|
311
|
+
mg.block(mg.show, mg.stack())
|
|
311
312
|
if n==0:
|
|
312
313
|
return 1
|
|
313
|
-
mg.block(mg.show, mg.stack())
|
|
314
314
|
result = n * factorial(n-1)
|
|
315
315
|
mg.block(mg.show, mg.stack())
|
|
316
316
|
return result
|
|
317
317
|
|
|
318
|
-
print(factorial(
|
|
318
|
+
print( factorial(4) )
|
|
319
319
|
```
|
|
320
320
|
|
|
321
321
|

|
|
322
322
|
|
|
323
|
-
and the result is: 1 x 2 x 3 =
|
|
323
|
+
and the result is: 1 x 2 x 3 x 4 = 24
|
|
324
|
+
|
|
325
|
+
## Binary ##
|
|
326
|
+
A more interesting recursive example is function `binary()` that converts an integer to binary representation.
|
|
327
|
+
```python
|
|
328
|
+
import memory_graph as mg
|
|
329
|
+
mg.config.type_to_vertical[list] = False # horizontal lists
|
|
330
|
+
|
|
331
|
+
def binary(value: int) -> list[int]:
|
|
332
|
+
mg.block(mg.show(), mg.stack())
|
|
333
|
+
if value == 0:
|
|
334
|
+
return []
|
|
335
|
+
quotient, remainder = divmod(value, 2)
|
|
336
|
+
result = binary(quotient) + [remainder]
|
|
337
|
+
mg.block(mg.show(), mg.stack())
|
|
338
|
+
return result
|
|
339
|
+
|
|
340
|
+
print( binary(100) )
|
|
341
|
+
```
|
|
342
|
+

|
|
343
|
+
```
|
|
344
|
+
1100100
|
|
345
|
+
```
|
|
324
346
|
|
|
325
347
|
## Power Set ##
|
|
326
|
-
A more
|
|
348
|
+
A more complex recursive example is function `power_set()` where lists are shared by different function calls. A power set is the set of all subsets of a collection of values.
|
|
327
349
|
|
|
328
350
|
```python
|
|
329
351
|
import memory_graph as mg
|
|
@@ -566,18 +588,18 @@ Different aspects of memory_graph can be configured. The default configuration c
|
|
|
566
588
|
- The maximum length of strings shown in the graph. Longer strings will be truncated.
|
|
567
589
|
|
|
568
590
|
- ***mg.config.not_node_types*** : set[type]
|
|
569
|
-
- Holds all types for which no
|
|
591
|
+
- Holds all types for which no separate node is drawn but that instead are shown as elements in their parent Node.
|
|
570
592
|
|
|
571
593
|
- ***mg.config.no_child_references_types*** : set[type]
|
|
572
594
|
- The set of key_value types that don't draw references to their direct childeren but have their children shown as elements of their node.
|
|
573
595
|
|
|
574
596
|
- ***mg.config.type_to_node*** : dict[type, fun(data) -> Node]
|
|
575
|
-
- Determines how a data
|
|
597
|
+
- Determines how a data type is converted to a Node subclass for visualization in the graph.
|
|
576
598
|
|
|
577
599
|
- ***mg.config.type_to_color*** : dict[type, color]
|
|
578
600
|
- Maps a type to the [graphviz color](https://graphviz.org/doc/info/colors.html) it gets in the graph.
|
|
579
601
|
|
|
580
|
-
- ***mg.config.
|
|
602
|
+
- ***mg.config.type_to_vertical*** : dict[type, bool]
|
|
581
603
|
- Maps a type to its orientation. Use 'True' for vertical and 'False' for horizontal. If not specified Node_Linear and Node_Key_Value are vertical unless they have references to children.
|
|
582
604
|
|
|
583
605
|
- ***mg.config.type_to_slicer*** : dict[type, int]
|
|
@@ -617,24 +639,6 @@ mg.render(locals(), 'not_node_types2.png')
|
|
|
617
639
|
|
|
618
640
|
Additionally, the simplification hides away the [reuse of small int values \[-5, 256\]](https://docs.python.org/3/c-api/long.html#c.PyLong_FromLong) in the current CPython implementation, an optimization that might otherwise confuse beginner Python programmers. For instance, after executing `a[1]+=1; b[1]+=1` the `201` value is, maybe surprisingly, still shared between `a` and `b`, whereas executing `a[2]+=1; b[2]+=1` does not result in sharing the `301` value.
|
|
619
641
|
|
|
620
|
-
## Temporary Configuration ##
|
|
621
|
-
In addition to the global configuration, a temporary configuration can be set for a single `show()` or `render()` call to change the colors, orientation, and slicer. This example highlights a particular list element in red, gives it a horizontal orientation, and overwrites the default slicer for lists:
|
|
622
|
-
|
|
623
|
-
```python
|
|
624
|
-
import memory_graph as mg
|
|
625
|
-
from memory_graph.slicer import Slicer
|
|
626
|
-
|
|
627
|
-
data = [ list(range(20)) for i in range(1,5)]
|
|
628
|
-
highlight = data[2]
|
|
629
|
-
|
|
630
|
-
mg.show( locals(),
|
|
631
|
-
colors = {id(highlight): "red" }, # set color to red
|
|
632
|
-
vertical_orientations = {id(highlight): False }, # set horizontal orientation
|
|
633
|
-
slicers = {id(highlight): Slicer()} # set no slicing
|
|
634
|
-
)
|
|
635
|
-
```
|
|
636
|
-

|
|
637
|
-
|
|
638
642
|
# Introspection #
|
|
639
643
|
This section is likely to change. Sometimes the introspection fails or is not as desired. For example the `bintrees.avltree.Node` object doesn't show any attributes in the graph below.
|
|
640
644
|
|
|
@@ -677,7 +681,7 @@ mg.show(locals())
|
|
|
677
681
|
```
|
|
678
682
|

|
|
679
683
|
|
|
680
|
-
Next figure out what
|
|
684
|
+
Next figure out what the attributes are you want to graph and choose a Node type, there are four options:
|
|
681
685
|
|
|
682
686
|
## 1) Node_Leaf ##
|
|
683
687
|
Node_Leaf is a node with no children and shows just a single value.
|
|
@@ -903,9 +907,11 @@ import numpy as np
|
|
|
903
907
|
import memory_graph.extension_numpy
|
|
904
908
|
np.random.seed(0) # use same random numbers each run
|
|
905
909
|
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
910
|
+
matrix = np.matrix([[i*5+j for j in range(4)] for i in range(5)])
|
|
911
|
+
ndarray_1d = np.array([1.1, 2, 3, 4, 5])
|
|
912
|
+
ndarray_2d = np.random.rand(3,2)
|
|
913
|
+
ndarray_3d = np.random.rand(2,2,2)
|
|
914
|
+
|
|
909
915
|
mg.show(locals())
|
|
910
916
|
```
|
|
911
917
|

|
|
@@ -929,6 +935,23 @@ mg.show(locals())
|
|
|
929
935
|
```
|
|
930
936
|

|
|
931
937
|
|
|
938
|
+
## PyTorch ##
|
|
939
|
+
Torch type `tensor` can be graphed with "memory_graph.extension_torch":
|
|
940
|
+
|
|
941
|
+
```python
|
|
942
|
+
import memory_graph as mg
|
|
943
|
+
import torch
|
|
944
|
+
import memory_graph.extension_torch
|
|
945
|
+
torch.manual_seed(0) # same random numbers each run
|
|
946
|
+
|
|
947
|
+
tensor_1d = torch.rand(3)
|
|
948
|
+
tensor_2d = torch.rand(3, 2)
|
|
949
|
+
tensor_3d = torch.rand(2, 2, 2)
|
|
950
|
+
|
|
951
|
+
mg.show(locals())
|
|
952
|
+
```
|
|
953
|
+

|
|
954
|
+
|
|
932
955
|
# Jupyter Notebook #
|
|
933
956
|
In Jupyter Notebook `locals()` has additional variables that cause problems in the graph, use `mg.locals_jupyter()` to get the local variables with these problematic variables filtered out. Use `mg.stack_jupyter()` to get the whole call stack with these variables filtered out.
|
|
934
957
|
|
|
@@ -282,28 +282,50 @@ This function:
|
|
|
282
282
|
* finally returns the value of the `fun()` call
|
|
283
283
|
|
|
284
284
|
## Recursion ##
|
|
285
|
-
The call stack is also helpful to visualize how recursion works. Here we use `mg.block()` to show each step of how recursively
|
|
285
|
+
The call stack is also helpful to visualize how recursion works. Here we use `mg.block()` to show each step of how recursively `factorial(4)` is computed:
|
|
286
286
|
|
|
287
287
|
```python
|
|
288
288
|
import memory_graph as mg
|
|
289
289
|
|
|
290
290
|
def factorial(n):
|
|
291
|
+
mg.block(mg.show, mg.stack())
|
|
291
292
|
if n==0:
|
|
292
293
|
return 1
|
|
293
|
-
mg.block(mg.show, mg.stack())
|
|
294
294
|
result = n * factorial(n-1)
|
|
295
295
|
mg.block(mg.show, mg.stack())
|
|
296
296
|
return result
|
|
297
297
|
|
|
298
|
-
print(factorial(
|
|
298
|
+
print( factorial(4) )
|
|
299
299
|
```
|
|
300
300
|
|
|
301
301
|

|
|
302
302
|
|
|
303
|
-
and the result is: 1 x 2 x 3 =
|
|
303
|
+
and the result is: 1 x 2 x 3 x 4 = 24
|
|
304
|
+
|
|
305
|
+
## Binary ##
|
|
306
|
+
A more interesting recursive example is function `binary()` that converts an integer to binary representation.
|
|
307
|
+
```python
|
|
308
|
+
import memory_graph as mg
|
|
309
|
+
mg.config.type_to_vertical[list] = False # horizontal lists
|
|
310
|
+
|
|
311
|
+
def binary(value: int) -> list[int]:
|
|
312
|
+
mg.block(mg.show(), mg.stack())
|
|
313
|
+
if value == 0:
|
|
314
|
+
return []
|
|
315
|
+
quotient, remainder = divmod(value, 2)
|
|
316
|
+
result = binary(quotient) + [remainder]
|
|
317
|
+
mg.block(mg.show(), mg.stack())
|
|
318
|
+
return result
|
|
319
|
+
|
|
320
|
+
print( binary(100) )
|
|
321
|
+
```
|
|
322
|
+

|
|
323
|
+
```
|
|
324
|
+
1100100
|
|
325
|
+
```
|
|
304
326
|
|
|
305
327
|
## Power Set ##
|
|
306
|
-
A more
|
|
328
|
+
A more complex recursive example is function `power_set()` where lists are shared by different function calls. A power set is the set of all subsets of a collection of values.
|
|
307
329
|
|
|
308
330
|
```python
|
|
309
331
|
import memory_graph as mg
|
|
@@ -546,18 +568,18 @@ Different aspects of memory_graph can be configured. The default configuration c
|
|
|
546
568
|
- The maximum length of strings shown in the graph. Longer strings will be truncated.
|
|
547
569
|
|
|
548
570
|
- ***mg.config.not_node_types*** : set[type]
|
|
549
|
-
- Holds all types for which no
|
|
571
|
+
- Holds all types for which no separate node is drawn but that instead are shown as elements in their parent Node.
|
|
550
572
|
|
|
551
573
|
- ***mg.config.no_child_references_types*** : set[type]
|
|
552
574
|
- The set of key_value types that don't draw references to their direct childeren but have their children shown as elements of their node.
|
|
553
575
|
|
|
554
576
|
- ***mg.config.type_to_node*** : dict[type, fun(data) -> Node]
|
|
555
|
-
- Determines how a data
|
|
577
|
+
- Determines how a data type is converted to a Node subclass for visualization in the graph.
|
|
556
578
|
|
|
557
579
|
- ***mg.config.type_to_color*** : dict[type, color]
|
|
558
580
|
- Maps a type to the [graphviz color](https://graphviz.org/doc/info/colors.html) it gets in the graph.
|
|
559
581
|
|
|
560
|
-
- ***mg.config.
|
|
582
|
+
- ***mg.config.type_to_vertical*** : dict[type, bool]
|
|
561
583
|
- Maps a type to its orientation. Use 'True' for vertical and 'False' for horizontal. If not specified Node_Linear and Node_Key_Value are vertical unless they have references to children.
|
|
562
584
|
|
|
563
585
|
- ***mg.config.type_to_slicer*** : dict[type, int]
|
|
@@ -597,24 +619,6 @@ mg.render(locals(), 'not_node_types2.png')
|
|
|
597
619
|
|
|
598
620
|
Additionally, the simplification hides away the [reuse of small int values \[-5, 256\]](https://docs.python.org/3/c-api/long.html#c.PyLong_FromLong) in the current CPython implementation, an optimization that might otherwise confuse beginner Python programmers. For instance, after executing `a[1]+=1; b[1]+=1` the `201` value is, maybe surprisingly, still shared between `a` and `b`, whereas executing `a[2]+=1; b[2]+=1` does not result in sharing the `301` value.
|
|
599
621
|
|
|
600
|
-
## Temporary Configuration ##
|
|
601
|
-
In addition to the global configuration, a temporary configuration can be set for a single `show()` or `render()` call to change the colors, orientation, and slicer. This example highlights a particular list element in red, gives it a horizontal orientation, and overwrites the default slicer for lists:
|
|
602
|
-
|
|
603
|
-
```python
|
|
604
|
-
import memory_graph as mg
|
|
605
|
-
from memory_graph.slicer import Slicer
|
|
606
|
-
|
|
607
|
-
data = [ list(range(20)) for i in range(1,5)]
|
|
608
|
-
highlight = data[2]
|
|
609
|
-
|
|
610
|
-
mg.show( locals(),
|
|
611
|
-
colors = {id(highlight): "red" }, # set color to red
|
|
612
|
-
vertical_orientations = {id(highlight): False }, # set horizontal orientation
|
|
613
|
-
slicers = {id(highlight): Slicer()} # set no slicing
|
|
614
|
-
)
|
|
615
|
-
```
|
|
616
|
-

|
|
617
|
-
|
|
618
622
|
# Introspection #
|
|
619
623
|
This section is likely to change. Sometimes the introspection fails or is not as desired. For example the `bintrees.avltree.Node` object doesn't show any attributes in the graph below.
|
|
620
624
|
|
|
@@ -657,7 +661,7 @@ mg.show(locals())
|
|
|
657
661
|
```
|
|
658
662
|

|
|
659
663
|
|
|
660
|
-
Next figure out what
|
|
664
|
+
Next figure out what the attributes are you want to graph and choose a Node type, there are four options:
|
|
661
665
|
|
|
662
666
|
## 1) Node_Leaf ##
|
|
663
667
|
Node_Leaf is a node with no children and shows just a single value.
|
|
@@ -883,9 +887,11 @@ import numpy as np
|
|
|
883
887
|
import memory_graph.extension_numpy
|
|
884
888
|
np.random.seed(0) # use same random numbers each run
|
|
885
889
|
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
890
|
+
matrix = np.matrix([[i*5+j for j in range(4)] for i in range(5)])
|
|
891
|
+
ndarray_1d = np.array([1.1, 2, 3, 4, 5])
|
|
892
|
+
ndarray_2d = np.random.rand(3,2)
|
|
893
|
+
ndarray_3d = np.random.rand(2,2,2)
|
|
894
|
+
|
|
889
895
|
mg.show(locals())
|
|
890
896
|
```
|
|
891
897
|

|
|
@@ -909,6 +915,23 @@ mg.show(locals())
|
|
|
909
915
|
```
|
|
910
916
|

|
|
911
917
|
|
|
918
|
+
## PyTorch ##
|
|
919
|
+
Torch type `tensor` can be graphed with "memory_graph.extension_torch":
|
|
920
|
+
|
|
921
|
+
```python
|
|
922
|
+
import memory_graph as mg
|
|
923
|
+
import torch
|
|
924
|
+
import memory_graph.extension_torch
|
|
925
|
+
torch.manual_seed(0) # same random numbers each run
|
|
926
|
+
|
|
927
|
+
tensor_1d = torch.rand(3)
|
|
928
|
+
tensor_2d = torch.rand(3, 2)
|
|
929
|
+
tensor_3d = torch.rand(2, 2, 2)
|
|
930
|
+
|
|
931
|
+
mg.show(locals())
|
|
932
|
+
```
|
|
933
|
+

|
|
934
|
+
|
|
912
935
|
# Jupyter Notebook #
|
|
913
936
|
In Jupyter Notebook `locals()` has additional variables that cause problems in the graph, use `mg.locals_jupyter()` to get the local variables with these problematic variables filtered out. Use `mg.stack_jupyter()` to get the whole call stack with these variables filtered out.
|
|
914
937
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
digraph memory_graph {
|
|
2
2
|
node [shape=plaintext]
|
|
3
|
-
|
|
3
|
+
node123501132205632 [label=<
|
|
4
4
|
<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="lightcoral" PORT="table">
|
|
5
5
|
<TR><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="1"> 4 </TD></TR>
|
|
6
6
|
<TR><TD BORDER="0"><font color="#505050">1</font></TD><TD BORDER="1"> 3 </TD></TR>
|
|
@@ -8,30 +8,30 @@ digraph memory_graph {
|
|
|
8
8
|
<TR><TD BORDER="0"><font color="#505050">3</font></TD><TD BORDER="1"> 1 </TD></TR>
|
|
9
9
|
</TABLE>
|
|
10
10
|
> xlabel=list]
|
|
11
|
-
|
|
11
|
+
node123501131031488 [label=<
|
|
12
12
|
<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="orange" PORT="table">
|
|
13
13
|
<TR><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="1"> 4 </TD></TR>
|
|
14
14
|
<TR><TD BORDER="0"><font color="#505050">1</font></TD><TD BORDER="1"> 3 </TD></TR>
|
|
15
15
|
<TR><TD BORDER="0"><font color="#505050">2</font></TD><TD BORDER="1"> 2 </TD></TR>
|
|
16
16
|
</TABLE>
|
|
17
17
|
> xlabel=tuple]
|
|
18
|
-
|
|
18
|
+
node123501130294400 [label=<
|
|
19
19
|
<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="lightcoral" PORT="table">
|
|
20
20
|
<TR><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="1"> 4 </TD></TR>
|
|
21
21
|
<TR><TD BORDER="0"><font color="#505050">1</font></TD><TD BORDER="1"> 3 </TD></TR>
|
|
22
22
|
<TR><TD BORDER="0"><font color="#505050">2</font></TD><TD BORDER="1"> 2 </TD></TR>
|
|
23
23
|
</TABLE>
|
|
24
24
|
> xlabel=list]
|
|
25
|
-
|
|
25
|
+
node123501130853888 [label=<
|
|
26
26
|
<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="#60a5ff" PORT="table">
|
|
27
27
|
<TR><TD BORDER="1" STYLE="ROUNDED"> a </TD><TD BORDER="1" STYLE="ROUNDED"> b </TD><TD BORDER="1" STYLE="ROUNDED"> c </TD></TR>
|
|
28
28
|
<TR><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1" PORT="ref1"> </TD><TD BORDER="1" PORT="ref2"> </TD></TR>
|
|
29
29
|
</TABLE>
|
|
30
30
|
> xlabel=dict]
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
node123501130853888:ref0 -> node123501132205632:table [style=solid]
|
|
32
|
+
node123501130853888:ref1 -> node123501131031488:table [style=solid]
|
|
33
|
+
node123501130853888:ref2 -> node123501130294400:table [style=solid]
|
|
34
|
+
node123501132148592 [label=<
|
|
35
35
|
<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="orange" PORT="table">
|
|
36
36
|
<TR><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="1"> 4 </TD></TR>
|
|
37
37
|
<TR><TD BORDER="0"><font color="#505050">1</font></TD><TD BORDER="1"> 3 </TD></TR>
|
|
@@ -39,7 +39,7 @@ digraph memory_graph {
|
|
|
39
39
|
<TR><TD BORDER="0"><font color="#505050">3</font></TD><TD BORDER="1"> 1 </TD></TR>
|
|
40
40
|
</TABLE>
|
|
41
41
|
> xlabel=tuple]
|
|
42
|
-
|
|
42
|
+
node123501131031872 [label=<
|
|
43
43
|
<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="lightcoral" PORT="table">
|
|
44
44
|
<TR><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="1"> 4 </TD></TR>
|
|
45
45
|
<TR><TD BORDER="0"><font color="#505050">1</font></TD><TD BORDER="1"> 3 </TD></TR>
|
|
@@ -47,23 +47,23 @@ digraph memory_graph {
|
|
|
47
47
|
<TR><TD BORDER="0"><font color="#505050">3</font></TD><TD BORDER="1"> 1 </TD></TR>
|
|
48
48
|
</TABLE>
|
|
49
49
|
> xlabel=list]
|
|
50
|
-
|
|
50
|
+
node123501126452672 [label=<
|
|
51
51
|
<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="#60a5ff" PORT="table">
|
|
52
52
|
<TR><TD BORDER="1" STYLE="ROUNDED"> a </TD><TD BORDER="1" STYLE="ROUNDED"> b </TD><TD BORDER="1" STYLE="ROUNDED"> c </TD></TR>
|
|
53
53
|
<TR><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1" PORT="ref1"> </TD><TD BORDER="1" PORT="ref2"> </TD></TR>
|
|
54
54
|
</TABLE>
|
|
55
55
|
> xlabel=dict]
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
56
|
+
node123501126452672:ref0 -> node123501132205632:table [style=solid]
|
|
57
|
+
node123501126452672:ref1 -> node123501132148592:table [style=solid]
|
|
58
|
+
node123501126452672:ref2 -> node123501131031872:table [style=solid]
|
|
59
|
+
node123501126509712 [label=<
|
|
60
60
|
<TABLE BORDER="3" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="khaki" PORT="table">
|
|
61
61
|
<TR><TD BORDER="1" STYLE="ROUNDED"> 0: <module> </TD><TD BORDER="1" STYLE="ROUNDED"> 1: add_one </TD></TR>
|
|
62
62
|
<TR><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1" PORT="ref1"> </TD></TR>
|
|
63
63
|
</TABLE>
|
|
64
64
|
> xlabel=call_stack]
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
subgraph { rank=same;
|
|
68
|
-
subgraph { rank=same;
|
|
65
|
+
node123501126509712:ref0 -> node123501130853888:table [style=solid]
|
|
66
|
+
node123501126509712:ref1 -> node123501126452672:table [style=solid]
|
|
67
|
+
subgraph { rank=same; node123501130853888 -> node123501126452672[weight=10, style=invis]; }
|
|
68
|
+
subgraph { rank=same; node123501132205632 -> node123501131031488 -> node123501130294400 -> node123501132148592 -> node123501131031872[weight=10, style=invis]; }
|
|
69
69
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
digraph memory_graph {
|
|
2
2
|
node [shape=plaintext]
|
|
3
|
-
|
|
3
|
+
node134455640685072 [label=<
|
|
4
4
|
<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="sandybrown" PORT="table">
|
|
5
5
|
<TR><TD BORDER="1" STYLE="ROUNDED"> left </TD><TD BORDER="1"> None </TD></TR>
|
|
6
6
|
<TR><TD BORDER="1" STYLE="ROUNDED"> key </TD><TD BORDER="1"> 5 </TD></TR>
|
|
@@ -8,7 +8,7 @@ digraph memory_graph {
|
|
|
8
8
|
<TR><TD BORDER="1" STYLE="ROUNDED"> right </TD><TD BORDER="1"> None </TD></TR>
|
|
9
9
|
</TABLE>
|
|
10
10
|
> xlabel="Node"]
|
|
11
|
-
|
|
11
|
+
node134455640930432 [label=<
|
|
12
12
|
<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="sandybrown" PORT="table">
|
|
13
13
|
<TR><TD BORDER="1" STYLE="ROUNDED"> left </TD><TD BORDER="1"> None </TD></TR>
|
|
14
14
|
<TR><TD BORDER="1" STYLE="ROUNDED"> key </TD><TD BORDER="1"> 15 </TD></TR>
|
|
@@ -16,34 +16,34 @@ digraph memory_graph {
|
|
|
16
16
|
<TR><TD BORDER="1" STYLE="ROUNDED"> right </TD><TD BORDER="1"> None </TD></TR>
|
|
17
17
|
</TABLE>
|
|
18
18
|
> xlabel="Node"]
|
|
19
|
-
|
|
19
|
+
node134455640930512 [label=<
|
|
20
20
|
<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="sandybrown" PORT="table">
|
|
21
21
|
<TR><TD BORDER="1" STYLE="ROUNDED"> left </TD><TD BORDER="1" STYLE="ROUNDED"> key </TD><TD BORDER="1" STYLE="ROUNDED"> value </TD><TD BORDER="1" STYLE="ROUNDED"> right </TD></TR>
|
|
22
22
|
<TR><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1"> 20 </TD><TD BORDER="1"> twenty </TD><TD BORDER="1"> None </TD></TR>
|
|
23
23
|
</TABLE>
|
|
24
24
|
> xlabel="Node"]
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
node134455640930512:ref0 -> node134455640930432:table [style=solid]
|
|
26
|
+
node134455655526256 [label=<
|
|
27
27
|
<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="sandybrown" PORT="table">
|
|
28
28
|
<TR><TD BORDER="1" STYLE="ROUNDED"> left </TD><TD BORDER="1" STYLE="ROUNDED"> key </TD><TD BORDER="1" STYLE="ROUNDED"> value </TD><TD BORDER="1" STYLE="ROUNDED"> right </TD></TR>
|
|
29
29
|
<TR><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1"> 10 </TD><TD BORDER="1"> ten </TD><TD BORDER="1" PORT="ref1"> </TD></TR>
|
|
30
30
|
</TABLE>
|
|
31
31
|
> xlabel="Node"]
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
node134455655526256:ref0 -> node134455640685072:table [style=solid]
|
|
33
|
+
node134455655526256:ref1 -> node134455640930512:table [style=solid]
|
|
34
|
+
node134455642149216 [label=<
|
|
35
35
|
<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="seagreen1" PORT="table">
|
|
36
36
|
<TR><TD BORDER="1" STYLE="ROUNDED"> _root </TD><TD BORDER="1" STYLE="ROUNDED"> _count </TD></TR>
|
|
37
37
|
<TR><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1"> 4 </TD></TR>
|
|
38
38
|
</TABLE>
|
|
39
39
|
> xlabel=AVLTree]
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
node134455642149216:ref0 -> node134455655526256:table [style=solid]
|
|
41
|
+
node134455644882880 [label=<
|
|
42
42
|
<TABLE BORDER="3" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="#60a5ff" PORT="table">
|
|
43
43
|
<TR><TD BORDER="1" STYLE="ROUNDED"> tree </TD></TR>
|
|
44
44
|
<TR><TD BORDER="1" PORT="ref0"> </TD></TR>
|
|
45
45
|
</TABLE>
|
|
46
46
|
> xlabel=dict]
|
|
47
|
-
|
|
48
|
-
subgraph { rank=same;
|
|
47
|
+
node134455644882880:ref0 -> node134455642149216:table [style=solid]
|
|
48
|
+
subgraph { rank=same; node134455640685072 -> node134455640930512[weight=10, style=invis]; }
|
|
49
49
|
}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
digraph memory_graph {
|
|
2
2
|
node [shape=plaintext]
|
|
3
|
-
|
|
3
|
+
node134455655526256 [label=<
|
|
4
4
|
<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="sandybrown" PORT="table">
|
|
5
5
|
<TR><TD BORDER="1"> key:10 value:ten </TD></TR>
|
|
6
6
|
</TABLE>
|
|
7
7
|
> xlabel="Node"]
|
|
8
|
-
|
|
8
|
+
node134455642149216 [label=<
|
|
9
9
|
<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="seagreen1" PORT="table">
|
|
10
10
|
<TR><TD BORDER="1" STYLE="ROUNDED"> _root </TD><TD BORDER="1" STYLE="ROUNDED"> _count </TD></TR>
|
|
11
11
|
<TR><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1"> 4 </TD></TR>
|
|
12
12
|
</TABLE>
|
|
13
13
|
> xlabel=AVLTree]
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
node134455642149216:ref0 -> node134455655526256:table [style=solid]
|
|
15
|
+
node134455644882880 [label=<
|
|
16
16
|
<TABLE BORDER="3" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="#60a5ff" PORT="table">
|
|
17
17
|
<TR><TD BORDER="1" STYLE="ROUNDED"> tree </TD></TR>
|
|
18
18
|
<TR><TD BORDER="1" PORT="ref0"> </TD></TR>
|
|
19
19
|
</TABLE>
|
|
20
20
|
> xlabel=dict]
|
|
21
|
-
|
|
21
|
+
node134455644882880:ref0 -> node134455642149216:table [style=solid]
|
|
22
22
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
digraph memory_graph {
|
|
2
2
|
node [shape=plaintext]
|
|
3
|
-
|
|
3
|
+
node134455640685072 [label=<
|
|
4
4
|
<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="sandybrown" PORT="table">
|
|
5
5
|
<TR><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="1"> left: </TD></TR>
|
|
6
6
|
<TR><TD BORDER="0"><font color="#505050">1</font></TD><TD BORDER="1"> None </TD></TR>
|
|
@@ -12,7 +12,7 @@ digraph memory_graph {
|
|
|
12
12
|
<TR><TD BORDER="0"><font color="#505050">7</font></TD><TD BORDER="1"> None </TD></TR>
|
|
13
13
|
</TABLE>
|
|
14
14
|
> xlabel="Node"]
|
|
15
|
-
|
|
15
|
+
node134455640930432 [label=<
|
|
16
16
|
<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="sandybrown" PORT="table">
|
|
17
17
|
<TR><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="1"> left: </TD></TR>
|
|
18
18
|
<TR><TD BORDER="0"><font color="#505050">1</font></TD><TD BORDER="1"> None </TD></TR>
|
|
@@ -24,34 +24,34 @@ digraph memory_graph {
|
|
|
24
24
|
<TR><TD BORDER="0"><font color="#505050">7</font></TD><TD BORDER="1"> None </TD></TR>
|
|
25
25
|
</TABLE>
|
|
26
26
|
> xlabel="Node"]
|
|
27
|
-
|
|
27
|
+
node134455640930512 [label=<
|
|
28
28
|
<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="sandybrown" PORT="table">
|
|
29
29
|
<TR><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="0"><font color="#505050">1</font></TD><TD BORDER="0"><font color="#505050">2</font></TD><TD BORDER="0"><font color="#505050">3</font></TD><TD BORDER="0"><font color="#505050">4</font></TD><TD BORDER="0"><font color="#505050">5</font></TD><TD BORDER="0"><font color="#505050">6</font></TD><TD BORDER="0"><font color="#505050">7</font></TD></TR>
|
|
30
30
|
<TR><TD BORDER="1"> left: </TD><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1"> key: </TD><TD BORDER="1"> 20 </TD><TD BORDER="1"> value: </TD><TD BORDER="1"> twenty </TD><TD BORDER="1"> right: </TD><TD BORDER="1"> None </TD></TR>
|
|
31
31
|
</TABLE>
|
|
32
32
|
> xlabel="Node"]
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
node134455640930512:ref0 -> node134455640930432:table [style=solid]
|
|
34
|
+
node134455655526256 [label=<
|
|
35
35
|
<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="sandybrown" PORT="table">
|
|
36
36
|
<TR><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="0"><font color="#505050">1</font></TD><TD BORDER="0"><font color="#505050">2</font></TD><TD BORDER="0"><font color="#505050">3</font></TD><TD BORDER="0"><font color="#505050">4</font></TD><TD BORDER="0"><font color="#505050">5</font></TD><TD BORDER="0"><font color="#505050">6</font></TD><TD BORDER="0"><font color="#505050">7</font></TD></TR>
|
|
37
37
|
<TR><TD BORDER="1"> left: </TD><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1"> key: </TD><TD BORDER="1"> 10 </TD><TD BORDER="1"> value: </TD><TD BORDER="1"> ten </TD><TD BORDER="1"> right: </TD><TD BORDER="1" PORT="ref1"> </TD></TR>
|
|
38
38
|
</TABLE>
|
|
39
39
|
> xlabel="Node"]
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
node134455655526256:ref0 -> node134455640685072:table [style=solid]
|
|
41
|
+
node134455655526256:ref1 -> node134455640930512:table [style=solid]
|
|
42
|
+
node134455642149216 [label=<
|
|
43
43
|
<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="seagreen1" PORT="table">
|
|
44
44
|
<TR><TD BORDER="1" STYLE="ROUNDED"> _root </TD><TD BORDER="1" STYLE="ROUNDED"> _count </TD></TR>
|
|
45
45
|
<TR><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1"> 4 </TD></TR>
|
|
46
46
|
</TABLE>
|
|
47
47
|
> xlabel=AVLTree]
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
node134455642149216:ref0 -> node134455655526256:table [style=solid]
|
|
49
|
+
node134455644882880 [label=<
|
|
50
50
|
<TABLE BORDER="3" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="#60a5ff" PORT="table">
|
|
51
51
|
<TR><TD BORDER="1" STYLE="ROUNDED"> tree </TD></TR>
|
|
52
52
|
<TR><TD BORDER="1" PORT="ref0"> </TD></TR>
|
|
53
53
|
</TABLE>
|
|
54
54
|
> xlabel=dict]
|
|
55
|
-
|
|
56
|
-
subgraph { rank=same;
|
|
55
|
+
node134455644882880:ref0 -> node134455642149216:table [style=solid]
|
|
56
|
+
subgraph { rank=same; node134455640685072 -> node134455640930512[weight=10, style=invis]; }
|
|
57
57
|
}
|
|
@@ -1,49 +1,49 @@
|
|
|
1
1
|
digraph memory_graph {
|
|
2
2
|
node [shape=plaintext]
|
|
3
|
-
|
|
3
|
+
node134455640685072 [label=<
|
|
4
4
|
<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="sandybrown" PORT="table">
|
|
5
5
|
<TR><TD BORDER="0"> </TD><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="0"><font color="#505050">1</font></TD></TR>
|
|
6
6
|
<TR><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="1"> 5 </TD><TD BORDER="1"> five </TD></TR>
|
|
7
7
|
<TR><TD BORDER="0"><font color="#505050">1</font></TD><TD BORDER="1"> None </TD><TD BORDER="1"> None </TD></TR>
|
|
8
8
|
</TABLE>
|
|
9
9
|
> xlabel="Node 2⨯2"]
|
|
10
|
-
|
|
10
|
+
node134455640930432 [label=<
|
|
11
11
|
<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="sandybrown" PORT="table">
|
|
12
12
|
<TR><TD BORDER="0"> </TD><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="0"><font color="#505050">1</font></TD></TR>
|
|
13
13
|
<TR><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="1"> 15 </TD><TD BORDER="1"> fifteen </TD></TR>
|
|
14
14
|
<TR><TD BORDER="0"><font color="#505050">1</font></TD><TD BORDER="1"> None </TD><TD BORDER="1"> None </TD></TR>
|
|
15
15
|
</TABLE>
|
|
16
16
|
> xlabel="Node 2⨯2"]
|
|
17
|
-
|
|
17
|
+
node134455640930512 [label=<
|
|
18
18
|
<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="sandybrown" PORT="table">
|
|
19
19
|
<TR><TD BORDER="0"> </TD><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="0"><font color="#505050">1</font></TD></TR>
|
|
20
20
|
<TR><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="1"> 20 </TD><TD BORDER="1"> twenty </TD></TR>
|
|
21
21
|
<TR><TD BORDER="0"><font color="#505050">1</font></TD><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1"> None </TD></TR>
|
|
22
22
|
</TABLE>
|
|
23
23
|
> xlabel="Node 2⨯2"]
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
node134455640930512:ref0 -> node134455640930432:table [style=solid]
|
|
25
|
+
node134455655526256 [label=<
|
|
26
26
|
<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="sandybrown" PORT="table">
|
|
27
27
|
<TR><TD BORDER="0"> </TD><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="0"><font color="#505050">1</font></TD></TR>
|
|
28
28
|
<TR><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="1"> 10 </TD><TD BORDER="1"> ten </TD></TR>
|
|
29
29
|
<TR><TD BORDER="0"><font color="#505050">1</font></TD><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1" PORT="ref1"> </TD></TR>
|
|
30
30
|
</TABLE>
|
|
31
31
|
> xlabel="Node 2⨯2"]
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
node134455655526256:ref0 -> node134455640685072:table [style=solid]
|
|
33
|
+
node134455655526256:ref1 -> node134455640930512:table [style=solid]
|
|
34
|
+
node134455642149216 [label=<
|
|
35
35
|
<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="seagreen1" PORT="table">
|
|
36
36
|
<TR><TD BORDER="1" STYLE="ROUNDED"> _root </TD><TD BORDER="1" STYLE="ROUNDED"> _count </TD></TR>
|
|
37
37
|
<TR><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1"> 4 </TD></TR>
|
|
38
38
|
</TABLE>
|
|
39
39
|
> xlabel=AVLTree]
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
node134455642149216:ref0 -> node134455655526256:table [style=solid]
|
|
41
|
+
node134455644882880 [label=<
|
|
42
42
|
<TABLE BORDER="3" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="#60a5ff" PORT="table">
|
|
43
43
|
<TR><TD BORDER="1" STYLE="ROUNDED"> tree </TD></TR>
|
|
44
44
|
<TR><TD BORDER="1" PORT="ref0"> </TD></TR>
|
|
45
45
|
</TABLE>
|
|
46
46
|
> xlabel=dict]
|
|
47
|
-
|
|
48
|
-
subgraph { rank=same;
|
|
47
|
+
node134455644882880:ref0 -> node134455642149216:table [style=solid]
|
|
48
|
+
subgraph { rank=same; node134455640685072 -> node134455640930512[weight=10, style=invis]; }
|
|
49
49
|
}
|