- }, * filled by node 1000;
- siblings = [*; node 920; node 950]
- }, * filled by node 500;
- siblings = [node 20; *; node 80]
- }, * filled by node 50
-
-In fact, there's some redundancy in this structure, at the points where we have `* filled by node 1000` and `* filled by node 500`. Most of `node 1000`---with the exception of any label attached to node `1000` itself---is determined by the rest of this structure; and so too with `node 500`. So we could really work with:
-
- {
- parent = {
- parent = {
- parent = None;
- siblings = [*]
- }, label for * position (at node 1000);
- siblings = [*; node 920; node 950]
- }, label for * position (at node 500);
- siblings = [node 20; *; node 80]
- }, * filled by node 50
+ }, * filled by tree 9200;
+ siblings = [*; subtree 920; subtree 950]
+ }, * filled by subtree 500;
+ siblings = [subtree 20; *; subtree 80]
+ }, * filled by subtree 50