memory-graph 0.3.28__tar.gz → 0.3.30__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.28/memory_graph.egg-info → memory_graph-0.3.30}/PKG-INFO +17 -13
- {memory_graph-0.3.28 → memory_graph-0.3.30}/README.md +8 -5
- memory_graph-0.3.30/images/.ipynb_checkpoints/jupyter_example-checkpoint.ipynb +85 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/add_one.gv +18 -18
- memory_graph-0.3.30/images/avltree.py~ +41 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/avltree_dir.gv +5 -5
- memory_graph-0.3.30/images/avltree_fail.gv +22 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/avltree_key_value.gv +12 -12
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/avltree_leaf.gv +5 -5
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/avltree_linear.gv +12 -12
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/avltree_table.gv +12 -12
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/bin_tree.gv +35 -35
- memory_graph-0.3.30/images/bin_tree2.py +31 -0
- memory_graph-0.3.30/images/bin_tree2.py~ +31 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/copies.gv +20 -20
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/copy_method.gv +16 -16
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/create_gif.sh +1 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/debugging01.gv +8 -8
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/debugging01.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/debugging02.gv +11 -11
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/debugging02.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/debugging03.gv +13 -13
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/debugging03.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/debugging04.gv +15 -15
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/debugging04.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/debugging05.gv +17 -17
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/debugging05.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/debugging06.gv +17 -17
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/debugging06.png +0 -0
- memory_graph-0.3.30/images/depth.gv +178 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/extension_numpy.gv +8 -8
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/extension_pandas.gv +8 -8
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/factorial0.gv +3 -3
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/factorial0.png +0 -0
- memory_graph-0.3.30/images/factorial01.gv +15 -0
- memory_graph-0.3.30/images/factorial02.gv +22 -0
- memory_graph-0.3.30/images/factorial03.gv +28 -0
- memory_graph-0.3.30/images/factorial04.gv +34 -0
- memory_graph-0.3.30/images/factorial05.gv +35 -0
- memory_graph-0.3.30/images/factorial06.gv +29 -0
- memory_graph-0.3.30/images/factorial07.gv +23 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/factorial1.gv +6 -6
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/factorial1.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/factorial2.gv +8 -8
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/factorial2.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/factorial3.gv +10 -10
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/factorial3.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/factorial4.gv +10 -10
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/factorial4.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/factorial5.gv +8 -8
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/factorial5.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/factorial6.gv +6 -6
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/factorial6.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/hash_set.gv +29 -29
- memory_graph-0.3.30/images/hidden_edges.gv +37 -0
- memory_graph-0.3.30/images/hidden_edges.py +8 -0
- memory_graph-0.3.30/images/hidden_edges.py~ +9 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/highlight.gv +16 -16
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/immutable1.gv +4 -4
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/immutable2.gv +6 -6
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/introspect_depth.gv +56 -56
- memory_graph-0.3.30/images/introspect_depth.png +0 -0
- memory_graph-0.3.30/images/introspect_depth.py~ +26 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/linked_list.gv +20 -20
- memory_graph-0.3.30/images/log.txt +186 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/many_types.gv +12 -12
- memory_graph-0.3.30/images/memory_graph.gv +70 -0
- memory_graph-0.3.30/images/memory_graph.gv.pdf +0 -0
- memory_graph-0.3.30/images/memory_graph.pdf +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/mutable1.gv +4 -4
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/mutable2.gv +4 -4
- memory_graph-0.3.30/images/my_graph.gv +31 -0
- memory_graph-0.3.30/images/my_graph.pdf +0 -0
- memory_graph-0.3.30/images/not_node_types.py~ +9 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/not_node_types1.gv +6 -6
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/not_node_types2.gv +14 -14
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set0.gv +11 -11
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set0.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set1.gv +17 -17
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set1.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set10.gv +36 -36
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set10.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set11.gv +31 -31
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set11.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set12.gv +31 -31
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set12.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set13.gv +36 -36
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set13.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set14.gv +41 -41
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set14.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set15.gv +43 -43
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set15.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set16.gv +40 -40
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set16.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set17.gv +40 -40
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set17.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set18.gv +45 -45
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set18.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set19.gv +47 -47
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set19.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set2.gv +22 -22
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set2.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set20.gv +44 -44
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set20.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set21.gv +39 -39
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set21.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set22.gv +34 -34
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set22.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set23.gv +28 -28
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set23.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set3.gv +27 -27
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set3.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set4.gv +32 -32
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set4.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set5.gv +34 -34
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set5.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set6.gv +32 -32
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set6.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set7.gv +32 -32
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set7.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set8.gv +37 -37
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set8.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set9.gv +39 -39
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set9.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/rebinding1.gv +4 -4
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/rebinding2.gv +6 -6
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph/__init__.py +45 -33
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph/utils.py +1 -1
- {memory_graph-0.3.28 → memory_graph-0.3.30/memory_graph.egg-info}/PKG-INFO +17 -13
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph.egg-info/SOURCES.txt +26 -4
- memory_graph-0.3.30/pyproject.toml +32 -0
- memory_graph-0.3.30/setup.py +7 -0
- memory_graph-0.3.28/images/cmp.sh +0 -3
- memory_graph-0.3.28/images/cmp.sh~ +0 -1
- memory_graph-0.3.28/images/name_rebinding.py~ +0 -7
- memory_graph-0.3.28/memory_graph/t.py +0 -6
- memory_graph-0.3.28/setup.py +0 -35
- {memory_graph-0.3.28 → memory_graph-0.3.30}/LICENSE.txt +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/MANIFEST.in +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/add_one.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/add_one.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/avltree.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/avltree_dir.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/avltree_fail.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/avltree_key_value.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/avltree_leaf.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/avltree_linear.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/avltree_table.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/bin_tree.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/bin_tree.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/copies.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/copies.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/copy_method.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/copy_method.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/create_images.sh +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/debug_vscode.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/debugging.gif +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/debugging.py +0 -0
- /memory_graph-0.3.28/images/introspect_depth.png → /memory_graph-0.3.30/images/depth.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/extension_numpy.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/extension_numpy.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/extension_pandas.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/extension_pandas.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/factorial.gif +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/factorial.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/hash_set.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/hash_set.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/hidden_edges.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/highlight.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/highlight.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/immutable.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/immutable1.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/immutable2.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/introspect_depth.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/ipython.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/jupyter_example.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/linked_list.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/linked_list.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/many_types.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/many_types.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/mutable.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/mutable1.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/mutable2.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/name_rebinding.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/not_node_types.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/not_node_types1.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/not_node_types2.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set.gif +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/power_set.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/pyodide.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/rebinding1.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/rebinding2.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/uva.png +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/images/vscode_copying.gif +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph/call_stack.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph/config.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph/config_default.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph/config_helpers.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph/extension_numpy.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph/extension_pandas.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph/html_table.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph/list_view.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph/memory_to_nodes.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph/node_base.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph/node_key_value.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph/node_leaf.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph/node_linear.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph/node_table.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph/sequence.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph/slicer.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph/slices.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph/slices_iterator.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph/slices_table_iterator.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph/test.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph/test_max_graph_depth.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph/test_memory_graph.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph/test_memory_to_nodes.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph/test_sequence.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph/test_slicer.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph/test_slices.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph/test_slices_iterator.py +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph.egg-info/dependency_links.txt +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph.egg-info/requires.txt +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/memory_graph.egg-info/top_level.txt +0 -0
- {memory_graph-0.3.28 → memory_graph-0.3.30}/setup.cfg +0 -0
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
2
|
-
Name:
|
|
3
|
-
Version: 0.3.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: memory-graph
|
|
3
|
+
Version: 0.3.30
|
|
4
4
|
Summary: Teaching tool and debugging aid in context of references, mutable data types, and shallow and deep copy.
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
Author-email: Bas Terwijn <bterwijn@gmail.com>
|
|
6
|
+
License-Expression: BSD-2-Clause
|
|
7
|
+
Project-URL: Homepage, https://github.com/bterwijn/memory_graph
|
|
8
|
+
Project-URL: Repository, https://github.com/bterwijn/memory_graph.git
|
|
9
9
|
Classifier: Development Status :: 4 - Beta
|
|
10
10
|
Classifier: Intended Audience :: Education
|
|
11
11
|
Classifier: Intended Audience :: Developers
|
|
12
|
-
Classifier: License :: OSI Approved :: BSD License
|
|
13
12
|
Classifier: Programming Language :: Python :: 3
|
|
14
13
|
Classifier: Topic :: Education
|
|
15
14
|
Classifier: Topic :: Software Development :: Debuggers
|
|
15
|
+
Requires-Python: >=3.7
|
|
16
16
|
Description-Content-Type: text/markdown
|
|
17
17
|
License-File: LICENSE.txt
|
|
18
18
|
Requires-Dist: graphviz
|
|
19
|
+
Dynamic: license-file
|
|
19
20
|
|
|
20
21
|
# Installation #
|
|
21
22
|
Install (or upgrade) `memory_graph` using pip:
|
|
@@ -104,7 +105,9 @@ A better way to understand what data is shared is to draw a graph of the data us
|
|
|
104
105
|
|
|
105
106
|
[Call Stack](#call-stack)
|
|
106
107
|
|
|
107
|
-
[
|
|
108
|
+
[Global Import Trick](#global-import-trick)
|
|
109
|
+
|
|
110
|
+
[Debugging](#debugging)
|
|
108
111
|
|
|
109
112
|
[Data Structure Examples](#data-structure-examples)
|
|
110
113
|
|
|
@@ -362,18 +365,19 @@ The ```mg.stack()``` doesn't work well in *watch* context in most debuggers beca
|
|
|
362
365
|
|:---|:---|
|
|
363
366
|
| **pdb, pudb** | `mg.stack_pdb()` |
|
|
364
367
|
| **Visual Studio Code** | `mg.stack_vscode()` |
|
|
365
|
-
| **
|
|
368
|
+
| **Cursor AI** | `mg.stack_cursor()` |
|
|
369
|
+
| **PyCharm** | `mg.stack_pycharm()` |
|
|
366
370
|
|
|
367
371
|

|
|
368
372
|
|
|
369
373
|
## Other Debuggers ##
|
|
370
|
-
For other debuggers, invoke this function within the *watch* context. Then, in the "call_stack.txt" file, identify the slice of functions you wish to include in the call stack.
|
|
374
|
+
For other debuggers, invoke this function within the *watch* context. Then, in the "call_stack.txt" file, identify the slice of functions you wish to include as stack frames in the call stack.
|
|
371
375
|
```
|
|
372
376
|
mg.save_call_stack("call_stack.txt")
|
|
373
377
|
```
|
|
374
|
-
Choose 'after' and '
|
|
378
|
+
Choose 'after' and 'through' what function you want to slice and then call this function to get the desired call stack. The `drop` argument can optionally be used to drop a number of stack frames after the `after_function`:
|
|
375
379
|
```
|
|
376
|
-
mg.
|
|
380
|
+
mg.stack_after_through(after_function, through_function="<module>", drop=0)
|
|
377
381
|
```
|
|
378
382
|
|
|
379
383
|
## Debugging without Debugger Tool ##
|
|
@@ -85,7 +85,9 @@ A better way to understand what data is shared is to draw a graph of the data us
|
|
|
85
85
|
|
|
86
86
|
[Call Stack](#call-stack)
|
|
87
87
|
|
|
88
|
-
[
|
|
88
|
+
[Global Import Trick](#global-import-trick)
|
|
89
|
+
|
|
90
|
+
[Debugging](#debugging)
|
|
89
91
|
|
|
90
92
|
[Data Structure Examples](#data-structure-examples)
|
|
91
93
|
|
|
@@ -343,18 +345,19 @@ The ```mg.stack()``` doesn't work well in *watch* context in most debuggers beca
|
|
|
343
345
|
|:---|:---|
|
|
344
346
|
| **pdb, pudb** | `mg.stack_pdb()` |
|
|
345
347
|
| **Visual Studio Code** | `mg.stack_vscode()` |
|
|
346
|
-
| **
|
|
348
|
+
| **Cursor AI** | `mg.stack_cursor()` |
|
|
349
|
+
| **PyCharm** | `mg.stack_pycharm()` |
|
|
347
350
|
|
|
348
351
|

|
|
349
352
|
|
|
350
353
|
## Other Debuggers ##
|
|
351
|
-
For other debuggers, invoke this function within the *watch* context. Then, in the "call_stack.txt" file, identify the slice of functions you wish to include in the call stack.
|
|
354
|
+
For other debuggers, invoke this function within the *watch* context. Then, in the "call_stack.txt" file, identify the slice of functions you wish to include as stack frames in the call stack.
|
|
352
355
|
```
|
|
353
356
|
mg.save_call_stack("call_stack.txt")
|
|
354
357
|
```
|
|
355
|
-
Choose 'after' and '
|
|
358
|
+
Choose 'after' and 'through' what function you want to slice and then call this function to get the desired call stack. The `drop` argument can optionally be used to drop a number of stack frames after the `after_function`:
|
|
356
359
|
```
|
|
357
|
-
mg.
|
|
360
|
+
mg.stack_after_through(after_function, through_function="<module>", drop=0)
|
|
358
361
|
```
|
|
359
362
|
|
|
360
363
|
## Debugging without Debugger Tool ##
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cells": [
|
|
3
|
+
{
|
|
4
|
+
"cell_type": "markdown",
|
|
5
|
+
"id": "23f6d43f-dd17-4020-971e-5bb8a5b1e30b",
|
|
6
|
+
"metadata": {},
|
|
7
|
+
"source": [
|
|
8
|
+
"# test: locals_jupyter()\n",
|
|
9
|
+
"Show a graph build with the filtered Jupyter locals using function `mg.locals_jupyter()`. Just adding integers to a list:"
|
|
10
|
+
]
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"cell_type": "code",
|
|
14
|
+
"execution_count": null,
|
|
15
|
+
"id": "e8913787-bbef-4adb-b027-ac0f28500233",
|
|
16
|
+
"metadata": {},
|
|
17
|
+
"outputs": [],
|
|
18
|
+
"source": [
|
|
19
|
+
"import memory_graph as mg\n",
|
|
20
|
+
"\n",
|
|
21
|
+
"data = []\n",
|
|
22
|
+
"for i in range(5):\n",
|
|
23
|
+
" data.append(i)\n",
|
|
24
|
+
" display(mg.create_graph(mg.locals_jupyter())) # display in jupyter notebook\n",
|
|
25
|
+
" mg.block(mg.show, mg.locals_jupyter()) # display in PDF reader\n",
|
|
26
|
+
" "
|
|
27
|
+
]
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"cell_type": "markdown",
|
|
31
|
+
"id": "f66d9b8d-0937-4ad0-97b4-a7459e84c4f2",
|
|
32
|
+
"metadata": {},
|
|
33
|
+
"source": [
|
|
34
|
+
"# test: get_call_stack_jupyter()\n",
|
|
35
|
+
"Show a graph build the filterd Jupyter call stack from function `mg.get_call_stack_jupyter()`. Recursively filling a list with all permutation of elements with resampling:"
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"cell_type": "code",
|
|
40
|
+
"execution_count": null,
|
|
41
|
+
"id": "15d0c443-7cc6-4b4f-a9db-598aaf261364",
|
|
42
|
+
"metadata": {},
|
|
43
|
+
"outputs": [],
|
|
44
|
+
"source": [
|
|
45
|
+
"import memory_graph as mg\n",
|
|
46
|
+
"\n",
|
|
47
|
+
"def get_all_permutations(permutations, elements, data, max_length):\n",
|
|
48
|
+
" if len(data) == max_length: # recursive stop condition\n",
|
|
49
|
+
" permutations.append(data.copy())\n",
|
|
50
|
+
" else:\n",
|
|
51
|
+
" for i in elements:\n",
|
|
52
|
+
" data.append(i)\n",
|
|
53
|
+
" mg.block(mg.show, mg.get_call_stack_jupyter())\n",
|
|
54
|
+
" get_all_permutations(permutations, elements, data, max_length)\n",
|
|
55
|
+
" data.pop()\n",
|
|
56
|
+
" mg.block(mg.show, mg.get_call_stack_jupyter())\n",
|
|
57
|
+
"\n",
|
|
58
|
+
"permutations = []\n",
|
|
59
|
+
"get_all_permutations(permutations, ['L','R'], [], 3)\n",
|
|
60
|
+
"print(permutations)"
|
|
61
|
+
]
|
|
62
|
+
}
|
|
63
|
+
],
|
|
64
|
+
"metadata": {
|
|
65
|
+
"kernelspec": {
|
|
66
|
+
"display_name": "Python 3 (ipykernel)",
|
|
67
|
+
"language": "python",
|
|
68
|
+
"name": "python3"
|
|
69
|
+
},
|
|
70
|
+
"language_info": {
|
|
71
|
+
"codemirror_mode": {
|
|
72
|
+
"name": "ipython",
|
|
73
|
+
"version": 3
|
|
74
|
+
},
|
|
75
|
+
"file_extension": ".py",
|
|
76
|
+
"mimetype": "text/x-python",
|
|
77
|
+
"name": "python",
|
|
78
|
+
"nbconvert_exporter": "python",
|
|
79
|
+
"pygments_lexer": "ipython3",
|
|
80
|
+
"version": "3.12.3"
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"nbformat": 4,
|
|
84
|
+
"nbformat_minor": 5
|
|
85
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
digraph memory_graph {
|
|
2
2
|
node [shape=plaintext]
|
|
3
|
-
|
|
3
|
+
node128148841714240 [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
|
+
node128148831943744 [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
|
+
node128148841712448 [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
|
+
node128148831944448 [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
|
+
node128148831944448:ref0 -> node128148841714240:table [style=solid]
|
|
32
|
+
node128148831944448:ref1 -> node128148831943744:table [style=solid]
|
|
33
|
+
node128148831944448:ref2 -> node128148841712448:table [style=solid]
|
|
34
|
+
node128148841695248 [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
|
+
node128148831823552 [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
|
+
node128148831249536 [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
|
+
node128148831249536:ref0 -> node128148841714240:table [style=solid]
|
|
57
|
+
node128148831249536:ref1 -> node128148841695248:table [style=solid]
|
|
58
|
+
node128148831249536:ref2 -> node128148831823552:table [style=solid]
|
|
59
|
+
node128148828831440 [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
|
+
node128148828831440:ref0 -> node128148831944448:table [style=solid]
|
|
66
|
+
node128148828831440:ref1 -> node128148831249536:table [style=solid]
|
|
67
|
+
subgraph { rank=same; node128148831944448 -> node128148831249536[weight=10, style=invis]; }
|
|
68
|
+
subgraph { rank=same; node128148841714240 -> node128148831943744 -> node128148841712448 -> node128148841695248 -> node128148831823552[weight=10, style=invis]; }
|
|
69
69
|
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import memory_graph as mg
|
|
2
|
+
import bintrees
|
|
3
|
+
|
|
4
|
+
# Create an AVL tree
|
|
5
|
+
tree = bintrees.AVLTree()
|
|
6
|
+
tree.insert(10, "ten")
|
|
7
|
+
tree.insert(5, "five")
|
|
8
|
+
tree.insert(20, "twenty")
|
|
9
|
+
tree.insert(15, "fifteen")
|
|
10
|
+
|
|
11
|
+
mg.render(locals(), 'avltree_fail.png')
|
|
12
|
+
|
|
13
|
+
mg.config.type_to_color[bintrees.avltree.Node] = "sandybrown"
|
|
14
|
+
mg.render(locals(), 'avltree_color.png')
|
|
15
|
+
|
|
16
|
+
mg.config.type_to_node[bintrees.avltree.Node] = lambda data: mg.node_linear.Node_Linear(data, dir(data))
|
|
17
|
+
mg.config.type_to_slicer[bintrees.avltree.Node] = mg.slicer.Slicer()
|
|
18
|
+
mg.render(locals(), 'avltree_dir.png')
|
|
19
|
+
|
|
20
|
+
mg.config.type_to_node[bintrees.avltree.Node] = lambda data: mg.node_base.Node_Base(f"key:{data.key} value:{data.value}")
|
|
21
|
+
mg.render(locals(), 'avltree_base.png')
|
|
22
|
+
|
|
23
|
+
mg.config.type_to_node[bintrees.avltree.Node] = lambda data: mg.node_linear.Node_Linear(data,
|
|
24
|
+
['left', data.left,
|
|
25
|
+
'key', data.key,
|
|
26
|
+
'value', data.value,
|
|
27
|
+
'right', data.right])
|
|
28
|
+
mg.render(locals(), 'avltree_linear.png')
|
|
29
|
+
|
|
30
|
+
mg.config.type_to_node[bintrees.avltree.Node] = lambda data: mg.node_key_value.Node_Key_Value(data,
|
|
31
|
+
{'left': data.left,
|
|
32
|
+
'key': data.key,
|
|
33
|
+
'value': data.value,
|
|
34
|
+
'right': data.right}.items())
|
|
35
|
+
mg.render(locals(), 'avltree_key_value.png')
|
|
36
|
+
|
|
37
|
+
mg.config.type_to_node[bintrees.avltree.Node] = lambda data: mg.node_table.Node_Table(data,
|
|
38
|
+
[[data.key, data.value],
|
|
39
|
+
[data.left, data.right]]
|
|
40
|
+
)
|
|
41
|
+
mg.render(locals(), 'avltree_table.png')
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
digraph memory_graph {
|
|
2
2
|
node [shape=plaintext]
|
|
3
|
-
|
|
3
|
+
node131821402228752 [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"> __class__ </TD></TR>
|
|
6
6
|
<TR><TD BORDER="0"><font color="#505050">1</font></TD><TD BORDER="1"> __delattr__ </TD></TR>
|
|
@@ -38,18 +38,18 @@ digraph memory_graph {
|
|
|
38
38
|
<TR><TD BORDER="0"><font color="#505050">33</font></TD><TD BORDER="1"> value </TD></TR>
|
|
39
39
|
</TABLE>
|
|
40
40
|
> xlabel="Node"]
|
|
41
|
-
|
|
41
|
+
node131821401230896 [label=<
|
|
42
42
|
<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="seagreen1" PORT="table">
|
|
43
43
|
<TR><TD BORDER="1" STYLE="ROUNDED"> _root </TD><TD BORDER="1" STYLE="ROUNDED"> _count </TD></TR>
|
|
44
44
|
<TR><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1"> 4 </TD></TR>
|
|
45
45
|
</TABLE>
|
|
46
46
|
> xlabel=AVLTree]
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
node131821401230896:ref0 -> node131821402228752:table [style=solid]
|
|
48
|
+
node131821402562240 [label=<
|
|
49
49
|
<TABLE BORDER="3" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="#60a5ff" PORT="table">
|
|
50
50
|
<TR><TD BORDER="1" STYLE="ROUNDED"> tree </TD></TR>
|
|
51
51
|
<TR><TD BORDER="1" PORT="ref0"> </TD></TR>
|
|
52
52
|
</TABLE>
|
|
53
53
|
> xlabel=dict]
|
|
54
|
-
|
|
54
|
+
node131821402562240:ref0 -> node131821401230896:table [style=solid]
|
|
55
55
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
digraph memory_graph {
|
|
2
|
+
node [shape=plaintext]
|
|
3
|
+
node124172493692400 [label=<
|
|
4
|
+
<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="white" PORT="table">
|
|
5
|
+
<TR><TD BORDER="1"> <bintrees.avltree.Node object at 0x70ef296... </TD></TR>
|
|
6
|
+
</TABLE>
|
|
7
|
+
> xlabel="Node"]
|
|
8
|
+
node124172492521984 [label=<
|
|
9
|
+
<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="seagreen1" PORT="table">
|
|
10
|
+
<TR><TD BORDER="1" STYLE="ROUNDED"> _root </TD><TD BORDER="1" STYLE="ROUNDED"> _count </TD></TR>
|
|
11
|
+
<TR><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1"> 4 </TD></TR>
|
|
12
|
+
</TABLE>
|
|
13
|
+
> xlabel=AVLTree]
|
|
14
|
+
node124172492521984:ref0 -> node124172493692400:table [style=solid]
|
|
15
|
+
node124172495724224 [label=<
|
|
16
|
+
<TABLE BORDER="3" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="#60a5ff" PORT="table">
|
|
17
|
+
<TR><TD BORDER="1" STYLE="ROUNDED"> tree </TD></TR>
|
|
18
|
+
<TR><TD BORDER="1" PORT="ref0"> </TD></TR>
|
|
19
|
+
</TABLE>
|
|
20
|
+
> xlabel=dict]
|
|
21
|
+
node124172495724224:ref0 -> node124172492521984:table [style=solid]
|
|
22
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
digraph memory_graph {
|
|
2
2
|
node [shape=plaintext]
|
|
3
|
-
|
|
3
|
+
node131821398109904 [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
|
+
node131821398108144 [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
|
+
node131821398108304 [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
|
+
node131821398108304:ref0 -> node131821398108144:table [style=solid]
|
|
26
|
+
node131821402228752 [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
|
+
node131821402228752:ref0 -> node131821398109904:table [style=solid]
|
|
33
|
+
node131821402228752:ref1 -> node131821398108304:table [style=solid]
|
|
34
|
+
node131821401230896 [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
|
+
node131821401230896:ref0 -> node131821402228752:table [style=solid]
|
|
41
|
+
node131821402562240 [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
|
+
node131821402562240:ref0 -> node131821401230896:table [style=solid]
|
|
48
|
+
subgraph { rank=same; node131821398109904 -> node131821398108304[weight=10, style=invis]; }
|
|
49
49
|
}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
digraph memory_graph {
|
|
2
2
|
node [shape=plaintext]
|
|
3
|
-
|
|
3
|
+
node131821402228752 [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
|
+
node131821401230896 [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
|
+
node131821401230896:ref0 -> node131821402228752:table [style=solid]
|
|
15
|
+
node131821402562240 [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
|
+
node131821402562240:ref0 -> node131821401230896:table [style=solid]
|
|
22
22
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
digraph memory_graph {
|
|
2
2
|
node [shape=plaintext]
|
|
3
|
-
|
|
3
|
+
node131821398109904 [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
|
+
node131821398108144 [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
|
+
node131821398108304 [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
|
+
node131821398108304:ref0 -> node131821398108144:table [style=solid]
|
|
34
|
+
node131821402228752 [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
|
+
node131821402228752:ref0 -> node131821398109904:table [style=solid]
|
|
41
|
+
node131821402228752:ref1 -> node131821398108304:table [style=solid]
|
|
42
|
+
node131821401230896 [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
|
+
node131821401230896:ref0 -> node131821402228752:table [style=solid]
|
|
49
|
+
node131821402562240 [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
|
+
node131821402562240:ref0 -> node131821401230896:table [style=solid]
|
|
56
|
+
subgraph { rank=same; node131821398109904 -> node131821398108304[weight=10, style=invis]; }
|
|
57
57
|
}
|
|
@@ -1,49 +1,49 @@
|
|
|
1
1
|
digraph memory_graph {
|
|
2
2
|
node [shape=plaintext]
|
|
3
|
-
|
|
3
|
+
node131821398109904 [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
|
+
node131821398108144 [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
|
+
node131821398108304 [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
|
+
node131821398108304:ref0 -> node131821398108144:table [style=solid]
|
|
25
|
+
node131821402228752 [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
|
+
node131821402228752:ref0 -> node131821398109904:table [style=solid]
|
|
33
|
+
node131821402228752:ref1 -> node131821398108304:table [style=solid]
|
|
34
|
+
node131821401230896 [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
|
+
node131821401230896:ref0 -> node131821402228752:table [style=solid]
|
|
41
|
+
node131821402562240 [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
|
+
node131821402562240:ref0 -> node131821401230896:table [style=solid]
|
|
48
|
+
subgraph { rank=same; node131821398109904 -> node131821398108304[weight=10, style=invis]; }
|
|
49
49
|
}
|